Unit testet einen Play Controller mit Mocks

8

Der Titel sagt so ziemlich alles. Ich möchte einen traditionellen JUnit-Test einrichten, um die Abhängigkeiten eines Controllers nachzuahmen und Tests gegen Aktionen auszuführen.

Ich habe festgestellt, dass ich mein Ziel so erreichen kann:

%Vor%

Das offensichtliche Problem hier ist, dass ich meine getestete Klasse instanziiere und falsche Abhängigkeiten von der Testmethode selbst einfüge, wenn ich das in der setup() Methode machen sollte. Es scheint, dass die Methode setup() nutzlos ist, wenn ich meinen Controller auf traditionelle Weise testen möchte.

Natürlich kann ich die Controller so testen, wie Play empfiehlt , aber meine Anwendung hängt von einem externen SOAP-Web ab Service, also brauche ich Komponententests, um zu zeigen, dass unser Code funktioniert, wenn seine Server ausfallen.

Also, was ist der beste Weg, um einen Play-Controller mit Mocks zu testen, während Sie weiterhin die Methoden setup() und teardown() nutzen?

Bearbeiten

Mir ist klar, dass ich hier etwas Wissen voraussetze. Für diejenigen, die das nicht wissen, muss die Controller-Instantiierung in einem Unit-Test in eine running() -Funktion oder Play! wird eine Laufzeitausnahme auslösen, die besagt, dass keine Anwendung gestartet wurde.

    
Samo 20.06.2012, 18:51
quelle

1 Antwort

1

Sie können dies mit Mockito und Play's FakeApplication erreichen und die statische Http.Context Variable setzen.

Auf diese Weise können Sie den Test wie alle anderen JUnit-Tests schreiben.

Beispiel:

%Vor%     
Zapodot 19.09.2012 14:02
quelle