Heim  >  Artikel  >  Java  >  Wie kann ich mit Mockito unterschiedliche Rückgabewerte für wiederholte Methodenaufrufe simulieren?

Wie kann ich mit Mockito unterschiedliche Rückgabewerte für wiederholte Methodenaufrufe simulieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 22:45:30218Durchsuche

How can I simulate different return values for repeated method calls with Mockito?

Anpassen von Mockito-Rückgabewerten für wiederholte Methodenaufrufe

Beim Testen von Szenarien mit nicht deterministischen Antworten kann es nützlich sein, eine Methodenrückgabe zu simulieren unterschiedliche Werte bei nachfolgenden Aufrufen. Mockito, ein beliebtes Java-Mocking-Framework, bietet eine elegante Lösung für dieses Rätsel.

Betrachten Sie den bereitgestellten Beispielcode, in dem ein ExecutorCompletionService verwendet wird, um Aufgaben zu gruppieren und ihre Ergebnisse zu sammeln. Um die Logik unabhängig von der Reihenfolge der Aufgabenausführung effektiv zu testen, müssen wir sicherstellen, dass die Methode „completeService.take()“ zu unterschiedlichen Zeiten unterschiedliche Werte zurückgibt.

Mockito stellt die Methode „thenReturn“ zur Steuerung der Rückgabewerte von Stub-Methoden bereit . Insbesondere können Sie in den Klammern von thenReturn mehrere Werte angeben. Bei jedem Aufruf der Methode gibt Mockito die Werte in der angegebenen Reihenfolge zurück. Zum Beispiel:

<code class="java">when(completionService.take()).thenReturn(value1, value2, value3);</code>

In diesem Beispiel gibt der erste Aufruf von „CompletionService.take()“ den Wert 1 zurück, der zweite Aufruf den Wert 2 und der dritte Aufruf den Wert 3. Sobald alle angegebenen Werte zurückgegeben wurden, gibt Mockito weiterhin den letzten Wert für nachfolgende Aufrufe zurück.

Durch die Verwendung dieser Technik können Sie nichtdeterministische Antworten effektiv simulieren und sicherstellen, dass Ihre Testlogik unabhängig von den Werten robust bleibt Reihenfolge, in der Aufgaben ihre Ausführung abschließen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Mockito unterschiedliche Rückgabewerte für wiederholte Methodenaufrufe simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn