Heim >Java >javaLernprogramm >Wie teste ich unbestimmte Antworten mit Mockito und mehreren Methodenaufrufen?
Testen unbestimmter Antworten mit Mockito und mehreren Methodenaufrufen
In Testszenarien, in denen eine Stub-Methode unterschiedliche Objekte für mehrere Aufrufe mit denselben Argumenten zurückgibt , ist es wichtig, unabhängig von der Rücksendeanordnung konsistente Ergebnisse sicherzustellen. Um dies zu erreichen, bietet Mockito eine elegante Lösung.
Betrachten Sie beispielsweise das folgende Testszenario, in dem ein ExecutorCompletionService zum Gruppieren und Verarbeiten von Aufgaben verwendet wird. Das Ziel besteht darin, zu überprüfen, dass das Ergebnis unabhängig von der Reihenfolge, in der die Aufgaben erledigt werden, konstant bleibt.
<code class="java">// ExecutorCompletionService completionService = new ExecutorCompletionService(service); // for (Callable<T> t : ts) completionService.submit(request);</code>
Um die unbestimmten Antworten des Abschlussdienstes zu testen, kann man Mockitos thenReturn-Methode wie folgt nutzen:
<code class="java">when(completionService.take().get()).thenReturn(value1, value2, value3);</code>
Die thenReturn-Methode ermöglicht die Angabe mehrerer Rückgabewerte als Argumente und stellt so sicher, dass die Stubbed-Methode die gewünschten Objekte in der angegebenen Reihenfolge zurückgibt. Der erste Wert wird beim ersten Aufruf zurückgegeben, gefolgt vom zweiten und so weiter. Sobald alle Werte erschöpft sind, wird der letzte Wert wiederholt zurückgegeben.
Mit diesem Ansatz können Entwickler verschiedene Szenarien testen, in denen die Reihenfolge der Methodenaufrufe oder die Reihenfolge der zurückgegebenen Objekte keinen Einfluss auf das erwartete Ergebnis hat. Es vereinfacht das Testen und stellt sicher, dass der Code auch in unbestimmten Situationen robust und zuverlässig ist.
Das obige ist der detaillierte Inhalt vonWie teste ich unbestimmte Antworten mit Mockito und mehreren Methodenaufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!