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)。