Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan adskiller verificeringsovertrædelser sig fra andre verifikationsmetoder i Mockito


Hvordan adskiller verificeringsovertrædelser sig fra andre verifikationsmetoder i Mockito


I Mockito er `VerifyZeroSoteractions` en specialiseret verifikationsmetode, der bruges til at sikre, at der ikke foretages nogen metodeopkald på et spottet objekt under en test. Denne metode er afgørende for at opretholde renheden af ​​enhedstest ved at forhindre utilsigtede interaktioner, der kan indikere mangler i logik eller unødvendige afhængigheder.

Forskelle fra andre verifikationsmetoder

1. Formål og adfærd:
- `VerifyZeroSoteractions`: Denne metode kontrollerer, at der ikke er foretaget nogen metodeopkald på et hånet objekt. Hvis der registreres et metodeopkald, kaster Mockito en undtagelse, hvilket får testen til at mislykkes. Det bruges til at hævde, at et mock -objekt forbliver uberørt under testudførelsen [1] [4].
- `Bekræft ': Denne metode bruges til at verificere, at specifikke metodeopkald forekommer som forventet. Det giver dig mulighed for at kontrollere, om der blev kaldt en metode med specifikke argumenter og kan bruges med forskellige verifikationstilstande som `Times ()`, `mindst ()` og `atmost ()` til at specificere antallet af påkaldelser [2] [7].

2. verifikationstilstande:
- `VerifyZeroSoteractions` understøtter ikke verifikationstilstande. Det kontrollerer simpelthen for fraværet af interaktioner.
- `Bekræft 'understøtter flere verifikationstilstande, såsom` Times () `,` mindst () `,` AtleAmAmonce () `og` atmost () `, så du kan specificere, hvor mange gange en metode skal kaldes [2] [7].

3. påkaldelsesordre:
- `VerifyZeroSoteractions` vedrører ikke sig selv rækkefølgen af ​​metodopkald, da den overhovedet ikke kontrollerer interaktioner.
- `Bekræft 'kan bruges sammen med` INORDER' til at verificere rækkefølgen af ​​metodeinvokationer på hånlige objekter. Dette er nyttigt, når sekvensen af ​​metodekald er vigtig [2] [7].

4. Brug sager:
- `VerifyZeroEoteractions` bruges typisk, når du vil sikre, at et mock -objekt overhovedet ikke bruges i et testscenarie. Dette hjælper med at isolere enheden under test og sikre, at der ikke forekommer nogen bivirkninger på grund af uventede interaktioner [1] [4].
- 'Bekræft' bruges i scenarier, hvor du skal bekræfte, at specifikke interaktioner forekommer mellem objekter. Det er vigtigt at teste den forventede opførsel af et system, der blev testet [2] [7].

5. Forhold til `verificering af nomerinteraktioner ':
- `VerifyZeroteractions` kontrollerer, at der overhovedet ikke er sket interaktioner.
- `Bekræftelseinteraktioner 'kontrollerer, at alle interaktioner på et mock -objekt er verificeret. Det sikrer, at der ikke er nogen ikke -verificerede interaktioner tilbage efter at have brugt 'verificering' til specifikke metodopkald [3] [9].

Sammenfattende er `verificeringszeoteractions` en specialiseret metode, der fokuserer på at sikre, at der ikke opstår nogen interaktioner, mens 'verificering' er mere alsidig, hvilket giver dig mulighed for at kontrollere for specifikke interaktioner og deres frekvens. Begge metoder er vigtige i enhedstest med Mockito, der tjener forskellige formål afhængigt af testscenariet.

Citater:
)
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complet-guide-to-mockito-verify
)
[4] https://www.lambdatest.com/automation-test-advisor/selenium/metods/org.mockito.mockito.verifyzeroteractions
[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-veryday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify