PHPUnit: Setze einen Parameter, wenn er an das Mock-Objekt übergeben wird

8

Für den folgenden Code

%Vor%

Diese Zeile stellt automatisch sicher, dass beim Aufruf der Methode search $searchConfig Parameter enthalten sein müssen. In diesem Fall müssen wir total übereinstimmendes $searchConfig bereitstellen, aber manchmal ist es schwierig, wenn es ein Array oder ein Objekt ist.

Gibt es irgendeine Möglichkeit, PHPUnit eine bestimmte Methode aufrufen zu lassen, um zu bestätigen, dass Argumente in einer Methode übergeben werden, wie wir wollen?

Zum Beispiel kann ich eine Closure-Funktion erstellen, um sie wie folgt zu bestätigen, anstatt ->with() method

zu verwenden %Vor%     
scalopus 17.01.2014, 08:22
quelle

1 Antwort

19

Sie können ->with($this->callback()) verwenden und einen Abschluss übergeben, um komplexere Assertionen für das Argument auszuführen.

Aus den PHPUnit Docs

  

Die callback () - Einschränkung kann für komplexere Argumente verwendet werden   Überprüfung. Diese Einschränkung erfordert nur einen PHP-Callback   Streit. Der PHP-Callback erhält das zu verifizierende Argument als   sein einziges Argument und sollte TRUE zurückgeben, wenn das Argument übergeben wird   Verifikation und sonst FALSE.

     

Beispiel 10.13: Komplexere Überprüfung von Argumenten

     

getMock ('Observer', Array ('reportError'));

%Vor%

Ihr Test würde also lauten:

%Vor%     
Schleis 17.01.2014, 21:01
quelle

Tags und Links