PHPUnit:期望方法含义
当我创build一个新的模拟,我需要调用期望的方法。 究竟是什么? 那么它的论点呢?
$todoListMock = $this->getMock('\Model\Todo_List'); $todoListMock->expects($this->any()) ->method('getItems') ->will($this->returnValue(array($itemMock)));
我找不到任何地方的原因(我试过文档)。 我已经阅读了消息来源,但我无法理解。 谢谢。
预期() – 设置你期望一个方法被调用的次数:
$mock = $this->getMock('nameOfTheClass', array('firstMethod','secondMethod','thirdMethod')); $mock->expects($this->once()) ->method('firstMethod') ->will($this->returnValue('value')); $mock->expects($this->once()) ->method('secondMethod') ->will($this->returnValue('value')); $mock->expects($this->once()) ->method('thirdMethod') ->will($this->returnValue('value'));
如果你知道,这个方法在expect()中使用$ this-> once(),否则使用$ this-> any()
看到:
PHPUnit模拟多个预期()调用
https://phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs
http://www.slideshare.net/mjlivelyjr/advanced-phpunit-testing
查看源代码会告诉你:
/** * Registers a new expectation in the mock object and returns the match * object which can be infused with further details. * * @param PHPUnit_Framework_MockObject_Matcher_Invocation $matcher * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker */ public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher);
PHPUnit手册列出了可用的匹配器
- 任何()返回一个匹配器匹配,当它被评估的方法被执行零次或多次。
- never()返回一个匹配器,当匹配的方法从不执行时匹配。
- atLeastOnce()返回匹配的匹配器,匹配的方法至less被执行一次。
- once()返回匹配的匹配器,匹配的方法被执行一次。
- 正好(int $ count)返回匹配的匹配器,匹配的方法被执行正好是$ count次。
- at(int $ index)返回一个匹配器,匹配器在给定的$ index被调用时匹配。