In Mockito ist "VerifyZerointeractions" eine spezielle Verifizierungsmethode, mit der sichergestellt wird, dass während eines Tests keine Methodenaufrufe auf einem verspotteten Objekt getätigt werden. Diese Methode ist entscheidend für die Aufrechterhaltung der Reinheit von Unit -Tests, indem unbeabsichtigte Wechselwirkungen verhindert werden, die Mängel in logischen oder unnötigen Abhängigkeiten hinweisen könnten.
Unterschiede zu anderen Verifizierungsmethoden
1. Zweck und Verhalten:
- `VerififizeroInteractions`: Diese Methode prüft, dass auf einem verspotteten Objekt keine Methodenaufrufe getätigt wurden. Wenn ein Methodenaufruf erkannt wird, macht Mockito eine Ausnahme, wodurch der Test fehlschlägt. Es wird verwendet, um zu behaupten, dass ein Scheinobjekt während der Testausführung unberührt bleibt [1] [4].
- `verify": Diese Methode wird verwendet, um zu überprüfen, ob spezifische Methodenaufrufe wie erwartet auftreten. Sie können überprüfen, ob eine Methode mit spezifischen Argumenten aufgerufen wurde, und kann mit verschiedenen Verifizierungsmodi wie "Times ()", "mindestens ()" "und" Best () "verwendet werden, um die Anzahl der Aufrufe anzugeben [2] [7].
2. Überprüfungsmodi:
- `verifyZerointeractions` unterstützt keine Verifizierungsmodi. Es prüft einfach das Fehlen von Interaktionen.
- `verify` unterstützt mehrere Verifizierungsmodi wie` Times () `,` mindestens () `,` atleastonce () `und` vor () `, sodass Sie angeben können, wie oft eine Methode bezeichnet werden sollte [2] [7].
3.. Reihenfolge der Berufung:
- `verifyZeroInteraktionen" betrifft sich nicht mit der Reihenfolge der Methodenaufrufe, da es überprüft, ob überhaupt keine Interaktionen sind.
- `verify` kann mit` In Order` verwendet werden, um die Reihenfolge der Methodenaufrufe für Scheinobjekte zu überprüfen. Dies ist nützlich, wenn die Abfolge von Methodenaufrufen wichtig ist [2] [7].
4. Anwendungsfälle:
- `verifyZeroInteraktionen 'wird normalerweise verwendet, wenn Sie sicherstellen möchten, dass in einem Testszenario ein Scheinobjekt überhaupt nicht verwendet wird. Dies hilft bei der Isolierung der untersuchten Einheit und der Sicherstellung, dass aufgrund unerwarteter Wechselwirkungen keine Nebenwirkungen auftreten [1] [4].
- "Verify" wird in Szenarien verwendet, in denen Sie bestätigen müssen, dass bestimmte Wechselwirkungen zwischen Objekten auftreten. Es ist wichtig, das erwartete Verhalten eines zu testenden Systems zu testen [2] [7].
5. Beziehung zu `verifyNomoreInteractions`:
- `VerififizeroInteractions`’ prüft, dass überhaupt keine Interaktionen aufgetreten sind.
- `verifyNoMoreInteractions` überprüft, ob alle Interaktionen in einem Scheinobjekt überprüft wurden. Es stellt sicher, dass nach der Verwendung von "Verify" für bestimmte Methodenaufrufe keine unbestätigten Wechselwirkungen übrig sind [3] [9].
Zusammenfassend ist "VerifyZerointeractions" eine spezielle Methode, die darauf ausgerichtet ist, sicherzustellen, dass keine Interaktionen auftreten, während "Verify" vielseitiger ist, sodass Sie nach bestimmten Interaktionen und deren Frequenz überprüfen können. Beide Methoden sind bei der Einheitstests mit Mockito von wesentlicher Bedeutung und dienen je nach Testszenario unterschiedliche Zwecke.
Zitate:[1] https://www.dhiwise.com/post/how-to-use-verifyzerointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-to-mockito-verify
[3] https://stackoverflow.com/questions/52396683/diffferenz-between-verifynomoreInteractions--VerifyzeroInteractions-in-mockit
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyzerointeractions
[5] https://stackoverflow.com/questions/64239160/using-mockito-when-to-mock-and-verify-vs-mockito-verify
[6] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[7] https://www.toptal.com/java/a-guide-to-everyday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify