PHPUnit - 在mock中存根私有方法

时间:2014-07-04 07:01:55

标签: php mocking phpunit stub

我正在编写PHP单元测试,我使用公共方法testMeMethod(我想测试)和私有方法privateMethod(由公共方法调用)。我这样嘲笑我的课:

$constructorArgs = array(
   'foo',
   'void'
);

$myMock = $this->getMockBuilder('\some\namespace\MockMeClass')
            ->setConstructorArgs($constructorArgs)
            ->getMock();

但这将使所有方法存根,我需要测试我的公共方法。我需要存根只是私有方法,所以我试过:

$myMock = $this->getMockBuilder('\some\namespace\MockMeClass')
            ->setConstructorArgs($constructorArgs)
            ->setMethods(array('privateMethod'))
            ->getMock();

$myMock->expects($this->any())->method('privateMethod')->will($this->returnValue('Return this'));

但即使在那之后,如果我打电话:

$myMock->testMeMethod();

处理实际的公共方法代码,但也适用于私有方法。如果没有运行实际代码,为什么不覆盖私有方法只返回Return this

0 个答案:

没有答案