在一个单元测试中模拟一个类之后,我再也不能在另一个单元测试中使用真实类了。
与此问题相同,但答案无关紧要。
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对象!
我该怎样防止这种情况?更改mockClassName
中的getMock
参数确实会更改模拟的className,但是当我尝试获取实例时它仍会返回mockObject。
我真的不明白这种行为。
答案 0 :(得分:0)
显然这会阻止它!
$this->fooService = $this->getMockBuilder('Application\Service\FooService')
->disableOriginalConstructor()
->getMock();