С помощью PHPUnit я тестирую последовательность вызовов методов, используя -> at (), например так:
$mock->expects($this->at(0))->method('execute')->will($this->returnValue('foo'));
$mock->expects($this->at(1))->method('execute')->will($this->returnValue('bar'));
$mock->expects($this->at(2))->method('execute')->will($this->returnValue('baz'));
Как настроить макет так, чтобы в приведенном выше сценарии если execute () вызывается четыре или более раз, он сразу завершится ошибкой?Я пробовал это:
$mock->expects($this->at(3))->method('execute')->will($this->throwException(new Exception('Called too many times.')));
Но это также не удается, если execute () не вызывается четыре раза.Он должен немедленно завершиться с ошибкой , в противном случае тестируемая система будет выдавать собственные ошибки, в результате чего полученное сообщение об ошибке будет неясным.