FMa*_*008 5 phpunit mocking expectations
使用PHPUnit,我想知道如何从同一个存根/模拟中获得多个期望.
例如,我想测试mock将display()调用该方法并返回NULL.我还想测试一下这个方法process()是否会被调用.
事实上,我的测试被称为testProcessIsCalledIfDisplayReturnNull().
所以我需要在同一个模拟对象上设置2个期望值,并且手册并没有真正帮助:(
如果你知道,在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'));
Run Code Online (Sandbox Code Playgroud)
我试过这个,只要通话顺序保持良好,它似乎有效:
$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');
Run Code Online (Sandbox Code Playgroud)