În Mockito, `VerifyZeroInteractions` este o metodă de verificare specializată folosită pentru a se asigura că nu se efectuează apeluri de metodă pe un obiect batjocorit în timpul unui test. Această metodă este crucială pentru menținerea purității testelor unitare prin prevenirea interacțiunilor neintenționate care ar putea indica defecte ale logicii sau dependențelor inutile.
Diferențe față de alte metode de verificare
1. Scopul și comportamentul:
- `VerifyZeroInteractions`: Această metodă verifică faptul că nu s -au făcut apeluri de metodă pe un obiect batjocorit. Dacă este detectat un apel de metodă, Mockito aruncă o excepție, determinând eșecul testului. Este folosit pentru a afirma că un obiect batjocoritor rămâne neatins în timpul executării testului [1] [4].
- `Verificați`: Această metodă este utilizată pentru a verifica dacă apelurile de metodă specifice apar așa cum se aștepta. Vă permite să verificați dacă a fost apelată o metodă cu argumente specifice și poate fi utilizată cu diverse moduri de verificare precum `Times ()`, `atleast ()` și `at mai ()` pentru a specifica numărul de invocări [2] [7].
2. Moduri de verificare:
- `VerifyZeroInteractions` nu acceptă moduri de verificare. Pur și simplu verifică absența oricărei interacțiuni.
- `verificare` acceptă mai multe moduri de verificare, cum ar fi` times () `,` atleast () `,` atleAsTONCE () `și` at mai () `, permițându -vă să specificați de câte ori ar trebui numită o metodă [2] [7].
3. Ordinea invocate:
- `VerifyZeroInteractions` nu se preocupă de ordinea apelurilor de metodă, deoarece nu verifică deloc interacțiuni.
- `Verificați` poate fi utilizat cu` inorder` pentru a verifica ordinea invocărilor metodei pe obiecte batjocoritoare. Acest lucru este util atunci când secvența apelurilor de metodă este importantă [2] [7].
4. Cazuri de utilizare:
- `VerifyZeroInteractions` este de obicei utilizat atunci când doriți să vă asigurați că un obiect batjocoritor nu este utilizat deloc într -un scenariu de testare. Acest lucru ajută la izolarea unității testate și la asigurarea faptului că nu apar efecte secundare din cauza interacțiunilor neașteptate [1] [4].
- `Verificați este utilizat în scenarii în care trebuie să confirmați că apar interacțiuni specifice între obiecte. Este esențial pentru testarea comportamentului preconizat al unui sistem testat [2] [7].
5. Relația cu `verificareanomoreInteractions`:
- `VerifyZeroInteractions` Verifică că nu au avut loc deloc interacțiuni.
- `VerifyNomOreInteractions` verifică că toate interacțiunile de pe un obiect batjocoritor au fost verificate. Se asigură că nu au mai rămas interacțiuni neverificate după utilizarea „Verificați” pentru apeluri de metodă specifice [3] [9].
În rezumat, `VerifyZeroInteractions` este o metodă specializată axată pe asigurarea nu se produce interacțiuni, în timp ce` verificare` este mai versatil, permițându -vă să verificați interacțiunile specifice și frecvența lor. Ambele metode sunt esențiale în testarea unităților cu Mockito, care servesc scopuri diferite în funcție de scenariul de testare.
Citări:[1] https://www.dhiwise.com/post/how-to-use-verifyzerointeractions-for-better-futter-tests
]
[3] https://stackoverflow.com/questions/52396683/difference-between-verifynomoreinteractions-and-verifyzeroInteractions-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.digitacean.com/community/tutorials/mockito-verify