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!