PHPUnit在模拟后无法实例化真实类

时间:2015-02-05 11:43:59

标签: phpunit

在一个单元测试中模拟一个类之后,我再也不能在另一个单元测试中使用真实类了。

与此问题相同,但答案无关紧要。

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。

我真的不明白这种行为。

1 个答案:

答案 0 :(得分:0)

显然这会阻止它!

$this->fooService = $this->getMockBuilder('Application\Service\FooService')
  ->disableOriginalConstructor()
  ->getMock();