returnCallback
Если вы не можете использовать withConsecutive()
, возможно, потому что вы используете старую версию PHPUnit, у вас есть другая опция с returnCallback
.
Функция returnCallback
вызывается каждый раз, когда вызывается ваш фиктивный метод.Это означает, что вы можете сохранить переданные ему аргументы для последующей проверки.Например:
$actualArgs = array();
$mockDependency->expects($this->any())
->method('setOption')
->will($this->returnCallback(
function($option, $value) use (&$actualArgs){
$actualArgs[] = array($option, $value);
}
));
$serviceUnderTest->executeMethodUnderTest();
$this->assertEquals(
array(
array('first arg of first call', 'second arg of first call'),
array('first arg of second call', 'second arg of second call'),
),
$actualArgs);