I Mockito är `Verifyzerointeractions 'en specialiserad verifieringsmetod som används för att säkerställa att inga metodsamtal görs på ett hånat objekt under ett test. Denna metod är avgörande för att upprätthålla renheten i enhetstester genom att förhindra oavsiktliga interaktioner som kan indikera brister i logik eller onödiga beroenden.
Skillnader från andra verifieringsmetoder
1. Syfte och beteende:
- `Verifyzerointeractions ': Den här metoden kontrollerar att inga metodsamtal har gjorts på ett hånat objekt. Om något metodsamtal upptäcks kastar Mockito ett undantag, vilket får testet att misslyckas. Det används för att hävda att ett håligt objekt förblir orört under testutförandet [1] [4].
- `Verify`: Den här metoden används för att verifiera att specifika metodsamtal inträffar som förväntat. Det låter dig kontrollera om en metod kallades med specifika argument och kan användas med olika verifieringslägen som `Times ()`, `minst ()` och `Atest ()` för att ange antalet invokationer [2] [7].
2. Verifieringslägen:
- `Verifyzerointeractions 'stöder inte verifieringslägen. Den kontrollerar helt enkelt frånvaron av några interaktioner.
- `Verify` stöder flera verifieringslägen, såsom` Times () `,` ått () `,` AtHeasTonce () `och` Atest () `, så att du kan ange hur många gånger en metod som ska kallas [2] [7].
3. Order för invokation:
- `Verifyzerointeractions 'berör inte sig med metodsamtalet eftersom det kontrollerar utan interaktion alls.
- `Verify` kan användas med` inorder 'för att verifiera metodens order på håliga objekt. Detta är användbart när metodsekvensen är viktig [2] [7].
4. Använd fall:
- `Verifyzerointeractions 'används vanligtvis när du vill se till att ett håligt objekt inte används alls i ett testscenario. Detta hjälper till att isolera enheten som testas och säkerställa att inga biverkningar inträffar på grund av oväntade interaktioner [1] [4].
- `Verify 'används i scenarier där du behöver bekräfta att specifika interaktioner inträffar mellan objekt. Det är viktigt för att testa det förväntade beteendet hos ett system som testas [2] [7].
5. Förhållande till `verifyNomoreIneractions`:
- `Verifyzerointeractions 'kontrollerar att inga interaktioner har inträffat alls.
- `VerifeNomoreIneractions 'kontrollerar att alla interaktioner på ett håligt objekt har verifierats. Det säkerställer att det inte finns några overifierade interaktioner kvar efter att ha använt "verify" för specifika metodsamtal [3] [9].
Sammanfattningsvis är "Verifyzerointeractions" en specialiserad metod som är inriktad på att säkerställa att inga interaktioner inträffar, medan "verify" är mer mångsidig, vilket gör att du kan kontrollera om specifika interaktioner och deras frekvens. Båda metoderna är viktiga vid enhetstestning med Mockito, som tjänar olika ändamål beroende på testscenariot.
Citeringar:[1] https://www.dhiwise.com/post/how-to-use-verifyzerointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-komplete-guide-to-mockito-verify
]
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyzerointeractions
]
[6] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[7] https://www.toptal.com/java/a-guide-to-veryday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify