Heim  >  Artikel  >  Java  >  Wie verspotte ich nichtdeterministische Antworten in ExecutorCompletionService mit Mockito?

Wie verspotte ich nichtdeterministische Antworten in ExecutorCompletionService mit Mockito?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 02:46:28351Durchsuche

How to Mock Nondeterministic Responses in ExecutorCompletionService with Mockito?

Verspotten nichtdeterministischer Antworten in ExecutorCompletionService mit Mockito

Das Testen des Verhaltens eines ExecutorCompletionService, wenn Aufgaben nichtdeterministische Werte zurückgeben, kann eine Herausforderung sein. Mockito bietet jedoch eine Lösung, um solche Szenarien zu simulieren.

In dieser Situation können Sie die thenReturn-Methode von Mockito verwenden, um mehrere Rückgabewerte für eine Stub-Methode anzugeben. Dadurch können Sie die Reihenfolge steuern, in der Werte zurückgegeben werden, und sicherstellen, dass das Ergebnis unabhängig von der Ausführungsreihenfolge konsistent bleibt.

Um dies zu erreichen, geben Sie einfach den Stub-Methodenaufruf gefolgt von einer Liste der zurückzugebenden Werte an in Ordnung. Zum Beispiel:

when(completionService.take().get()).thenReturn(value1, value2, value3);

In diesem Beispiel wird Wert1 beim ersten Aufruf von take() zurückgegeben, Wert2 wird beim zweiten Mal zurückgegeben und so weiter. Sobald alle Werte zurückgegeben wurden, wird Wert3 für nachfolgende Aufrufe wiederholt zurückgegeben.

Mit dieser Technik können Sie das Verhalten Ihres Codes beim Umgang mit nichtdeterministischen Aufgabenergebnissen testen und so sicherstellen, dass das gewünschte Ergebnis trotzdem erreicht wird der Reihenfolge, in der Aufgaben erledigt werden.

Das obige ist der detaillierte Inhalt vonWie verspotte ich nichtdeterministische Antworten in ExecutorCompletionService mit Mockito?. 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