[ Примечание. Все примеры кода с сайтов, на которые даны ссылки, следуют по ссылкам для более подробных объяснений. ]
Возврат различных значений
(Текущая) документация PHPUnit предлагает использование обратного вызова или onConsecutiveCalls()
:
$stub->expects($this->any())
->method('doSomething')
->will($this->returnCallback('str_rot13'));
$stub->expects($this->any())
->method('doSomething')
->will($this->onConsecutiveCalls(2, 3, 5, 7));
Ожидайте несколько параметров
with()
может содержать несколько параметров :
$observer->expects($this->once())
->method('reportError')
->with($this->greaterThan(0),
$this->stringContains('Something'),
$this->anything());
Проверка нескольких вызовов
Хотя и не спрашивайте, по связанной теме (и не в документации по PHPUnit, которую я могу найти), вы можете использовать от at()
до , чтобы установить ожидания для нескольких вызовов метода :
$inputFile->expects($this->at(0))
->method('read')
->will($this->returnValue("3 4"));
$inputFile->expects($this->at(1))
->method('read')
->will($this->returnValue("4 6"));
$inputFile->expects($this->at(2))
->method('read')
->will($this->returnValue(NULL));