Chcę nazwać moją wyśmiewaną metodę dwukrotnie różnymi oczekiwanymi argumentami. To nie działa, ponieważ expects($this->once())
zawiedzie podczas drugiego połączenia.W PHPUnit, jak wskazać różne z() na kolejne wywołania do wyśmiewane metody?
$mock->expects($this->once())
->method('foo')
->with('someValue');
$mock->expects($this->once())
->method('foo')
->with('anotherValue');
$mock->foo('someValue');
$mock->foo('anotherValue');
Próbowałem również:
$mock->expects($this->exactly(2))
->method('foo')
->with('someValue');
Ale jak mogę dodać z(), aby dopasować drugie połączenie?
Dlaczego musisz dopasować argumenty? Nie można użyć metody onConsecutiveCalls(), aby powiedzieć "za pierwszym razem, zwraca to, po raz drugi zwraca"? Użyłbyś dokładnie (2) i onConsecutiveCalls() – fiunchinho
to samo [pytanie] (http://stackoverflow.com/questions/5484602/mock-in-phpunit-multiple-configuration-of-the-same-method-with -different-argume) z powiązanego bloku. – meze
Możliwy duplikat [phpunit mock method multiple calls with different arguments] (https://stackoverflow.com/questions/5988616/phpunit-mock-method-multiple-calls- with-different-arguments) –