Mockitossa `VardifyZeroteractions` on erikoistunut varmennusmenetelmä, jota käytetään varmistamaan, että pilkatulle objektille ei soiteta menetelmäkutsuja testin aikana. Tämä menetelmä on ratkaisevan tärkeä yksikkötestien puhtauden ylläpitämiseksi estämällä tahattomia vuorovaikutuksia, jotka voisivat osoittaa logiikan tai tarpeettomien riippuvuuksien puutteita.
erot muista varmennusmenetelmistä
1. Tarkoitus ja käyttäytyminen:
- `Vardizerointeractions`: Tämä menetelmä tarkistaa, että pilkatulle objektille ei ole soitettu menetelmäkutsuja. Jos menetelmäpuhelu havaitaan, Mockito heittää poikkeuksen, mikä aiheuttaa testin epäonnistumisen. Sitä käytetään väittämään, että mallisobjekti pysyy koskemattomana testin suorittamisen aikana [1] [4].
- `Vahvista`: Tätä menetelmää käytetään tarkistamaan, että erityiset menetelmäkutsut tapahtuvat odotetusti. Sen avulla voit tarkistaa, onko menetelmää kutsuttiin tietyillä argumenteilla, ja sitä voidaan käyttää erilaisilla varmennustiloilla, kuten `Times ()`, `` ainakin `, ja` atmost () ``:
2. Varmennustilat:
- `VardifyZeroteractions` ei tue varmennustiloja. Se vain tarkistaa vuorovaikutuksen puuttumisen.
- `Vahvista` tukee useita varmennustiloja, kuten` Times () `,` ainakin () `,` `atleastonce ()` ja `atmost ()), jonka avulla voit määrittää, kuinka monta kertaa menetelmää tulisi kutsua [2] [7].
3. Kutsujärjestys:
- `VardifyZeroteractions 'ei koske menetelmäpuhelujen järjestystä, koska se tarkistaa mitään vuorovaikutusta.
- `Vahvista` voidaan käyttää" Inorder "-sovelluksen kanssa pilkkaobjektien menetelmäkutsujen järjestyksen varmistamiseksi. Tämä on hyödyllistä, kun menetelmäpuhelujen sekvenssi on tärkeä [2] [7].
4. Käyttötapaukset:
- `VerifyZeroteractions` käytetään tyypillisesti, kun haluat varmistaa, että pilkka -objektia ei käytetä ollenkaan testiskenaariossa. Tämä auttaa eristämään testauksen alla olevan yksikön ja varmistamaan, että sivuvaikutuksia ei tapahdu odottamattomien vuorovaikutusten vuoksi [1] [4].
- `Vahvista` käytetään skenaarioissa, joissa sinun on vahvistettava, että objektien välillä tapahtuu erityisiä vuorovaikutuksia. Se on välttämätöntä testattavan järjestelmän odotettavissa olevan käyttäytymisen testaamiseksi [2] [7].
5. Suhde `VerifyNomoreTinteractions 'kanssa:
- `Vardizerointeractions 'tarkistaa, että vuorovaikutuksia ei ole tapahtunut ollenkaan.
- `VardifyNomoreteractions 'tarkistaa, että kaikki pilkkiobjektin vuorovaikutukset on varmistettu. Se varmistaa, että tiettyihin menetelmäpuheluihin [3] [9] ei ole jäljellä varmentamatonta vuorovaikutusta.
Yhteenvetona voidaan todeta, että "VardifyZeroteractions" on erikoistunut menetelmä, joka keskittyy vuorovaikutuksen varmistamiseen, kun taas "tarkista" on monipuolisempi, jolloin voit tarkistaa tietyt vuorovaikutukset ja niiden taajuuden. Molemmat menetelmät ovat välttämättömiä yksikkötestauksessa Mockiton kanssa, jotka palvelevat erilaisia tarkoituksia testiskenaariosta riippuen.
Viittaukset:[1] https://www.dhiwise.com/post/how-to-use-verifyzeroteractions
.
.
.
.
[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