Codeception\Util\Stub::construct('SomeClass') 和 new SomeClass 有什么区别?
What is the difference between Codeception\Util\Stub::construct('SomeClass') and new SomeClass?
有两种方法可以在 Codeception 中创建新的 class 编写单元测试。
use Codeception\Util\Stub as Stub;
$SomeClass = new SomeClass();
$SomeClass = Stub::construct('SomeClass');
谁能解释一下这两种方法有什么区别?
new SomeClass
创建 class,
的常规实例
Stub::construct('SomeClass')
创建 class 的测试替身,替换了一些方法或属性。
如 http://codeception.com/docs/reference/Stub#construct
中所述
Properties and methods can be set in third argument. Even protected and private properties can be set.
如果您不覆盖任何属性或方法,则两者之间没有区别(也没有理由使用 Stub)。
有两种方法可以在 Codeception 中创建新的 class 编写单元测试。
use Codeception\Util\Stub as Stub;
$SomeClass = new SomeClass();
$SomeClass = Stub::construct('SomeClass');
谁能解释一下这两种方法有什么区别?
new SomeClass
创建 class,
的常规实例
Stub::construct('SomeClass')
创建 class 的测试替身,替换了一些方法或属性。
如 http://codeception.com/docs/reference/Stub#construct
中所述Properties and methods can be set in third argument. Even protected and private properties can be set.
如果您不覆盖任何属性或方法,则两者之间没有区别(也没有理由使用 Stub)。