Frage

Mit Phpunit frage ich mich, wie wir aus demselben Stummel/Mock mehrere Erwartungen haben können.

Zum Beispiel möchte ich testen, dass das Schein die Methode hat display() angerufen und null zurückkehren. Ich möchte auch die Methode testen process() wird angerufen werden.

In der Tat heißt mein Test genannt testProcessIsCalledIfDisplayReturnNull().

Ich muss also 2 Erwartungen an dasselbe Scheinobjekt einrichten, und das Handbuch hilft nicht wirklich daran :(

War es hilfreich?

Lösung

Wenn Sie wissen, wird diese Methode aufgerufen, wenn Sie $ this-> einmal () in erwartet () verwenden, sonst verwenden Sie $ this-> medig ()

$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'));

Andere Tipps

Ich habe es versucht und es scheint zu funktionieren, solange die Anrufbearbeitung gut bleibt:

$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');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top