PHPUnit 无法在模拟后实例化真实 class
PHPUnit can't instantiate real class after mocking
我在一个单元测试中模拟了一个 class 之后,我不能再在另一个单元测试中使用真正的 class。
与此处问题相同,但答案不相关。
PHPUnit Mock Object replacing Real Class
我有两个单元测试:
class BarServiceTest {
function setUp() {
$this->fooService = $this->getMock('Application\Service\FooService', ['fooMethod'], [],'MockFooService', false, false, false);
}
}
并且:
class FooServiceTest {
function setUp() {
$this->fooService = new \Application\Service\FooService;
}
}
当FooServiceTest
运行时,fooService
对象将包含Mock对象!
我该如何防止这种情况发生?更改 getMock
中的 mockClassName
参数确实会更改模拟的 class 名称,但当我尝试获取真实实例时它仍然是 returns 模拟对象。
我真的不明白这种行为。
显然这阻止了它!
$this->fooService = $this->getMockBuilder('Application\Service\FooService')
->disableOriginalConstructor()
->getMock();
我在一个单元测试中模拟了一个 class 之后,我不能再在另一个单元测试中使用真正的 class。
与此处问题相同,但答案不相关。
PHPUnit Mock Object replacing Real Class
我有两个单元测试:
class BarServiceTest {
function setUp() {
$this->fooService = $this->getMock('Application\Service\FooService', ['fooMethod'], [],'MockFooService', false, false, false);
}
}
并且:
class FooServiceTest {
function setUp() {
$this->fooService = new \Application\Service\FooService;
}
}
当FooServiceTest
运行时,fooService
对象将包含Mock对象!
我该如何防止这种情况发生?更改 getMock
中的 mockClassName
参数确实会更改模拟的 class 名称,但当我尝试获取真实实例时它仍然是 returns 模拟对象。
我真的不明白这种行为。
显然这阻止了它!
$this->fooService = $this->getMockBuilder('Application\Service\FooService')
->disableOriginalConstructor()
->getMock();