Mockito Scala Verifikationstests funktionieren nicht (play framework)

8

Ich probiere Unit-Tests mit Play Framework in scala aus. Ich habe eine Klasse geschrieben, die überprüft, ob die Konfiguration korrekt ist (ich habe ein bisschen mehr Fehlerbehandlung, aber ich verwende diesen Code jetzt für meinen Test):

%Vor%

Ich teste das mit dem Standard-Test-Setup von play 2.1.1:

%Vor%

Ich erhalte den folgenden Fehler:

%Vor%

Das ist sehr merkwürdig, weil der Code sehr isoliert ist und es nur einen Aufruf von conf.getString in TaskQueueConfig gibt. Zeile 10 ist die Zeile mit der getString-Methode. Zeile 61 ist die Zeile mit "es gab einen (tQConf) .getString"

Wie kann ich dieses Problem beheben?

(Es gibt keinen Unterschied zwischen was und was war).

PS: Ich weiß, dass dieses Beispiel ziemlich nutzlos ist, um zu testen, aber ich habe komplexere Konfigurationen, wo es einige Regeln gibt, die getestet werden müssen.

AKTUALISIEREN 1 Die Methode getString hat zwei Parameter, der zweite Parameter hat den Standardwert None (der Typ ist Option [Set [String]]). Wenn ich die None explizit zur Einrichtung und Überprüfung hinzufüge, funktioniert sie immer noch nicht. Aber wenn ich stattdessen null hinzufüge, funktioniert es.

%Vor%

Also ich denke die Frage ist jetzt, warum muss ich null verwenden?

    
Jaap 05.09.2013, 13:31
quelle

1 Antwort

4

Sie müssen null in dem Aufruf mit zwei Argumenten getString() verwenden, da Mockito entweder use matcher für all Argumente oder none benötigt.

Das Mischen von "queue" (ein Literal) mit any[Option[Set[String]]] (ein Matcher) wird nicht funktionieren. Manchmal kann Mockito herausfinden, dass du das gemacht hast und es gibt dir einen Fehler, aber es scheint, als hättest du Pech gehabt ...

Verwenden Sie Matchmakers in allen folgenden Positionen:

%Vor%

Und überprüfen:

%Vor%     
millhouse 09.09.2013, 06:23
quelle

Tags und Links