A Mockito -ban a „VerifyzerointerActions” egy speciális ellenőrzési módszer, amely annak biztosítása érdekében, hogy a teszt során nem kezdeményezzenek módszerhívásokat egy gúnyos objektumon. Ez a módszer elengedhetetlen az egységtesztek tisztaságának fenntartásához azáltal, hogy megakadályozza a nem kívánt interakciókat, amelyek jelezhetik a logika vagy a felesleges függőségek hibáit.
különbségek az egyéb ellenőrzési módszerektől
1. Cél és viselkedés:
- `VerifyzerointerActions`: Ez a módszer ellenőrzi, hogy a gúnyos objektumon nem történt módszerhívás. Ha valamelyik módszerhívást észlelnek, a Mockito kivételt vet fel, ami a teszt meghibásodását okozza. Azt állítják, hogy egy modell objektum érintetlen marad a teszt végrehajtása során [1] [4].
- `Ellenőrizze ': Ezt a módszert annak ellenőrzésére használják, hogy a konkrét módszerhívások a várt módon történjenek. Ez lehetővé teszi annak ellenőrzését, hogy egy módszert hívtak -e konkrét argumentumokkal, és különféle ellenőrzési módokkal, például `times ()`, `legalább ()` és „lefelé ()” felhasználható, hogy meghatározzuk a meghívások számát [2] [7].
2. ellenőrzési módok:
- A „VerifyzerointerActions” nem támogatja az ellenőrzési módokat. Egyszerűen ellenőrzi az interakciók hiányát.
- `Ellenőrizze a több ellenőrzési módot, mint például a` times () `,` AtLeast () `,` AtLeASonce () `és` atlest () `, lehetővé téve, hogy meghatározza, hányszor kell egy módszert hívni [2] [7].
3. A meghívási sorrend:
- A „VerifyzerointerActions” nem foglalkozik a módszerhívások sorrendjével, mivel egyáltalán nem ellenőrzi az interakciókat.
- `Ellenőrizze a„ Inorder ”segítségével a MOCK objektumok módszerének meghívásainak sorrendjének ellenőrzésére. Ez akkor hasznos, ha a módszerhívások sorrendje fontos [2] [7].
4. Használja az eseteket:
- A „VerifyzerointerActions” -et általában akkor használják, ha azt szeretné biztosítani, hogy a modell objektumot egyáltalán nem használják a teszt forgatókönyvében. Ez elősegíti a vizsgált egység elszigetelését és annak biztosítását, hogy a váratlan interakciók miatt ne forduljon elő mellékhatások [1] [4].
- A „Ellenőrzés” olyan forgatókönyvekben használható, ahol meg kell erősítenie, hogy az objektumok között konkrét interakciók fordulnak elő. Alapvető fontosságú a teszt alatt álló rendszer várható viselkedésének teszteléséhez [2] [7].
5. Kapcsolat a „VerifyNomoreInteractions” -el:
- A „VerifyZointerActions” ellenőrzi, hogy egyáltalán nem történt -e interakció.
- `Ellenőrzési objektumok minden interakcióját ellenőrzik -e. Biztosítja, hogy a „Verify” használata után ne maradjon ellenőrizetlen interakciók a [3] [9].
Összefoglalva: a „VerifyZerointerActions” egy speciális módszer, amelynek célja az interakciók nem valósulásának biztosítása, míg a „ellenőrzés” sokoldalúbb, lehetővé téve, hogy ellenőrizze a konkrét interakciókat és azok gyakoriságát. Mindkét módszer elengedhetetlen a Mockito -val végzett egységvizsgálatban, a teszt forgatókönyvétől függően különböző célokat szolgálva.
Idézetek:[1] https://www.dhiwise.com/post/how-touse-veryzerointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-stesting-a-complete-guide-to-mockito-everify
[3] https://stackoverflow.com/questions/52396683/difference-between-verifyNomoreInteractions-and-veryzerointeractions-in-mockit
[4] https://www.lambdatest.com/automation-stesting-advisor/selenium/methods/org.mockito.mockito.Verifyzerointeractions
[5] https://stackoverflow.com/questions/64239160/using-mockito-when-to-mock-and-verify-vs-mockito- sevify
[6] https://www.javacodegeeks.com/2015/11/mockito-everification.html
[7] https://www.toptal.com/java/a-guide-to-everyday-mockito
[8] https://www.baeldung.com/mockito-everify
[9] https://www.digitalocean.com/community/tutorials/mockito-everify