Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Was ist der Unterschied zwischen Zeiten (n) und mindestens (n) in Mockitos Verify -Methode


Was ist der Unterschied zwischen Zeiten (n) und mindestens (n) in Mockitos Verify -Methode


In Mockito werden in der Methode "Verify" -Methode "mindestens (n)` `` `` `verifizieren, um zu überprüfen, wie oft eine Methode auf ein Mock -Objekt aufgerufen wird. Hier ist eine detaillierte Erklärung von jedem:

Times (n)

- Zweck: Diese Methode verwertet, dass eine Methode genannt wird. Wenn die Methode mehr oder weniger als "n" -Psten bezeichnet wird, schlägt der Test fehl.
- Beispiel: `verifizieren (Mock, Times (2)). Somemethod ();` stellt sicher, dass `somemethod ()` genau zweimal aufgerufen wird.
- Anwendungsfall: Verwenden Sie, wenn Sie eine genaue Anzahl von Aufrufe sicherstellen müssen.

mindestens (n)

- Zweck: Diese Methode verwertet, dass eine Methode zumindest als "n`" bezeichnet wird. Wenn die Methode weniger als "n" -Plänen bezeichnet wird, wird der Test fehlschlagen, aber es wird weitergegeben, wenn sie mehr als "n" -Plänen genannt wird.
- Beispiel: `verifizieren (Mock, mindestens (2)). Somemethod ();` stellt sicher, dass `somemethod ()` mindestens zweimal genannt wird.
- Anwendungsfall: Verwenden Sie, wenn Sie eine minimale Anzahl von Aufrufe sicherstellen möchten, sich jedoch nicht um das Maximum kümmern.

Schlüsselunterschiede

- exakt vs. Minimum: `Times (n)` erfordert eine genaue Anzahl von Aufrufen, während `mindestens (n)` mindestens diese Anzahl von Anrufen erfordert.
- Flexibilität: `mindestens (n)` ist flexibler, da es mehr Anrufe als angegeben ermöglicht, während die Anzahl der Anrufe streng ist.
- Fehlerbehandlung: Wenn eine Methode öfter als mit "Times (n)" angegeben wird, wird Mockito eine Ausnahme (`toomanyactualinvocations"). Mit `mindestens (n)` wird es nur fehlschlagen, wenn die Methode weniger als angegeben bezeichnet wird ("Toolittleacuctualinvocations").

Zusammenfassend wird "Times (n)" zur präzisen Kontrolle über die Anzahl der Methodenaufrufe verwendet, während "mindestens (n)" verwendet wird, um einen minimalen Schwellenwert von Aufrufen zu gewährleisten, ohne die maximale Anzahl von Anrufen einzuschränken.

Zitate:
[1] https://stackoverflow.com/questions/58176580/what-is-tifferenz-between-atleastonce-and1-in-mockito
[2] https://mincong.io/2019/09/22/mockito-verify/
[3] https://github.com/mockk/mockk
[4] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[5] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.atleast
[6] https://stackoverflow.com/questions/60969650/use-of-verify-hod-with-without-times1-parameter
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-hod-calls-n-times-with-mockito
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-was-was-called-multiple-times/54233921