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被调用时匹配。