使用PHPUnit,我想知道如何从同一个存根/模拟中获得多个期望。
例如,我想测试mock将调用方法display()
并返回NULL。我还想测试将调用方法process()
。
实际上,我的测试称为testProcessIsCalledIfDisplayReturnNull()
。
所以我需要在同一个模拟对象上设置2个期望值,而手册并没有真正帮助:(
答案 0 :(得分:6)
如果你知道,在expect()中使用$ this-> once()一次调用该方法,否则使用$ this-> any()
$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'));
答案 1 :(得分:5)
我已经尝试了这个,只要通话顺序保持良好,它似乎有效:
$mock = $this->getMock('mockWorker', array('display', 'process'));
$mock->expects($this->exactly(1))
->method('display')
->will($this->returnValue(null));
$mock->expects($this->exactly(1))
->method('process');