In Mockito is `VerifyZeroInteractions` een gespecialiseerde verificatiemethode die wordt gebruikt om ervoor te zorgen dat er tijdens een test geen methodeaanroepen worden gedaan. Deze methode is cruciaal voor het handhaven van de zuiverheid van eenheidstests door onbedoelde interacties te voorkomen die fouten in logica of onnodige afhankelijkheden kunnen aangeven.
verschillen van andere verificatiemethoden
1. Doel en gedrag:
- `VerifyZeroInteractions`: Deze methode controleert dat er geen methodeaanroepen zijn gedaan op een bespot object. Als een methode -oproep wordt gedetecteerd, gooit Mockito een uitzondering, waardoor de test mislukt. Het wordt gebruikt om te beweren dat een nepobject onaangeroerd blijft tijdens de testuitvoering [1] [4].
- `verify`: deze methode wordt gebruikt om te controleren of aanroepen van specifieke methode plaatsvinden zoals verwacht. Hiermee kunt u controleren of een methode met specifieke argumenten is aangeroepen en kan worden gebruikt met verschillende verificatiemodi zoals `Times ()`, `minstens ()`, en `qostm ()` om het aantal aanroepingen te specificeren [2] [7].
2. Verificatiemodi:
- `VerifyZeroInteractions` ondersteunt geen verificatiemodi. Het controleert eenvoudig op afwezigheid van interacties.
- `Verify` ondersteunt meerdere verificatiemodi, zoals` Times () `,` minstens () `,` Atleastonce () `, en` opmost () `, zodat u kunt opgeven hoe vaak een methode moet worden genoemd [2] [7].
3. Orde van aanroeping:
- `VerifyZeroInteractions` houdt zich niet bezig met de volgorde van methodeaanroepen, omdat het helemaal geen interacties controleert.
- `verify` kan worden gebruikt met` inorder` om de volgorde van methodeaanvocaties op mockobjecten te verifiëren. Dit is handig wanneer de volgorde van methodeaanroepen belangrijk is [2] [7].
4. Gebruiksgevallen:
- `VerifyZeroInteractions` wordt meestal gebruikt wanneer u ervoor wilt zorgen dat een mock -object helemaal niet wordt gebruikt in een testscenario. Dit helpt bij het isoleren van de te testen unit en ervoor te zorgen dat er geen bijwerkingen optreden als gevolg van onverwachte interacties [1] [4].
- `verify` wordt gebruikt in scenario's waarbij u moet bevestigen dat specifieke interacties tussen objecten optreden. Het is essentieel voor het testen van het verwachte gedrag van een te testen systeem [2] [7].
5. Relatie met `verifieNomoreInteractions`:
- `VerifyZeroInteractions` controleert dat er helemaal geen interacties zijn opgetreden.
- `VerifyNomoreInteractions` controleert dat alle interacties op een mock -object zijn geverifieerd. Het zorgt ervoor dat er geen niet -geverifieerde interacties over zijn na het gebruik van 'verifie' voor specifieke methodeaanroepen [3] [9].
Samenvattend is `verifyZeroInteractions` een gespecialiseerde methode gericht op het waarborgen van geen interacties, terwijl 'verifiëren' veelzijdiger is, zodat u kunt controleren op specifieke interacties en hun frequentie. Beide methoden zijn essentieel bij het testen van eenheid met Mockito, met verschillende doeleinden, afhankelijk van het testscenario.
Citaten:[1] https://www.dhiwise.com/post/how-to-se-verifyzerointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-to-mockito
[3] https://stackoverflow.com/questions/52396683/difference-verify-verifynomoreInteractions-and-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-mockitoverify
[6] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[7] https://www.toptal.com/java/a-guide-to-reyday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify