Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak se liší ověřenízerointerakce od ostatních metod ověřování v Mockito


Jak se liší ověřenízerointerakce od ostatních metod ověřování v Mockito


V Mockito je `ověřenázerointeractions` specializovanou metodou ověření používanou k zajištění toho, aby během testu nebyla na zesměšňovaném objektu provedena žádná metoda. Tato metoda je zásadní pro udržení čistoty testů jednotek tím, že zabrání nezamýšleným interakcím, které by mohly naznačovat nedostatky v logice nebo zbytečných závislostech.

Rozdíly od jiných metod ověření

1. účel a chování:
- `ověřenízerointeractions`: Tato metoda kontroluje, že na zesměšňovaném objektu nebyla uvedena žádná metoda. Pokud je detekováno jakékoli volání metody, Mockito vyvolá výjimku, což způsobí selhání testu. Používá se k tvrzení, že simulovaný objekt zůstává během provádění testu nedotčen [1] [4].
- `ověření`: Tato metoda se používá k ověření, že se dochází k konkrétní metodě podle očekávání. Umožňuje vám zkontrolovat, zda byla metoda volána s konkrétními argumenty a lze ji použít s různými ověřovacími režimy jako `Times ()`, `AMALEAST ()` a `ATVEST ()` pro specifikace počtu vyvolání [2] [7].

2. režimy ověření:
- `ověřenízerointeractions` nepodporuje ověřovací režimy. Jednoduše kontroluje absenci jakýchkoli interakcí.
- `ověření` podporuje více ověřovacích režimů, jako jsou` Times () `,` ATLEAST () `,` ATLEASPonce () `a` ATVAST () (), což vám umožňuje určit, kolikrát by se metoda měla volat [2] [7].

3. Pořadí vyvolání:
- `ověřenízerointeractions` se netýká pořadí volání metod, protože kontroluje žádné interakce vůbec.
- `ověření` lze použít s` inorder` k ověření pořadí metod vyvolání na falešné objekty. To je užitečné, když je důležitá sekvence volání metod [2] [7].

4. Případy použití:
- `ověřenízerointeractions` se obvykle používá, pokud chcete zajistit, aby se ve scénáři testování vůbec nepoužil falešný objekt. To pomáhá při izolaci testovací jednotky a zajištění toho, aby nedošlo k žádné vedlejší účinky v důsledku neočekávaných interakcí [1] [4].
- `ověření` se používá ve scénářích, kde musíte potvrdit, že mezi objekty dochází k konkrétním interakcím. Je nezbytný pro testování očekávaného chování testovacího systému [2] [7].

5. Vztah s `ověřenímNoMoreInterActions`:
- `ověřenízerointeractions` kontroluje, že nedošlo k žádné interakci.
- `ověřeníNomoreInterActions` kontroluje, že byly ověřeny všechny interakce na falešném objektu. Zajišťuje, že po použití „ověření“ pro konkrétní volání metod [3] [9] nezůstají žádné neověřené interakce.

Stručně řečeno, „ověřená léčba“ je specializovaná metoda zaměřená na zajištění nedostatku k žádné interakci, zatímco „ověření“ je všestrannější, což vám umožňuje kontrolovat konkrétní interakce a jejich frekvenci. Obě metody jsou nezbytné při testování jednotek s Mockito a slouží různým účelům v závislosti na testovacím scénáři.

Citace:
[1] https://www.dhisewise.com/post/how-to-use-verifyZerointeractions-for-better-flutter-tests
[2] https://www.dhisewise.com/post/mastering-unit-testing-a-complete-guide-to-Mockito-Verrify
[3] https://stackoverflow.com/questions/52396683/difference-between-verifynomoreintaction-and-verifyzerointer-in-mockit
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyZerointernactions
[5] https://stackoverflow.com/questions/64239160/using-hockito-when-to-mock-and-verify-vs-mockIto-Vify
[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-rify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify