„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich nichtdeterministische Antworten mit Mockito testen?

Wie kann ich nichtdeterministische Antworten mit Mockito testen?

Veröffentlicht am 10.11.2024
Durchsuche:848

 How Can I Test Nondeterministic Responses with Mockito?

Testen nichtdeterministischer Antworten mit Mockito

Beim Testen von Code, der mit nichtdeterministischen Diensten interagiert, kann es schwierig sein, sicherzustellen, dass die Ergebnisse unabhängig davon konstant bleiben der Rückgabereihenfolge von Methoden. Erwägen Sie beispielsweise das Testen des folgenden Codes, der einen ExecutorCompletionService zum Gruppieren und Verarbeiten von Aufgaben verwendet:

ExecutorCompletionService completionService = new ExecutorCompletionService(service);

for (Callable t : ts)
    completionService.submit(request);

for (int i = 0; i 

Um dieser Herausforderung zu begegnen, bietet Mockito eine Möglichkeit, nachfolgende Aufrufe einer Methode so zu konfigurieren, dass unterschiedliche Objekte zurückgegeben werden. Mithilfe der thenReturn-Methode können Sie die Objekte angeben, die in der folgenden Reihenfolge zurückgegeben werden sollen:

when(method-call).thenReturn(value1, value2, value3);

Jeder Wert wird nacheinander zurückgegeben, wobei der letzte Wert wiederholt verwendet wird, sobald alle anderen Werte erschöpft sind. Dadurch können Sie verschiedene Szenarien testen und sicherstellen, dass das Ergebnis unabhängig von der Rücksendebestellung konsistent bleibt.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3