Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Czym różnią się VerifyZerointeractions od innych metod weryfikacji w Mockleto


Czym różnią się VerifyZerointeractions od innych metod weryfikacji w Mockleto


W Mockito „VerifyZerointeractions” to specjalistyczna metoda weryfikacji stosowana w celu zapewnienia, że ​​podczas testu nie są wykonywane żadne wywołania metody. Ta metoda ma kluczowe znaczenie dla utrzymania czystości testów jednostkowych poprzez zapobieganie niezamierzonym interakcjom, które mogą wskazywać na wady w logice lub niepotrzebnych zależności.

Różnice od innych metod weryfikacji

1. Cel i zachowanie:
- `VerifyeroInteractions`: Ta metoda sprawdza, czy na wyśmiewanym obiekcie nie wykonano żadnych wywołań metody. W przypadku wykrycia jakiegokolwiek wywołania metody Mocchito rzuca wyjątek, powodując awarię testu. Służy do stwierdzenia, że ​​próbny obiekt pozostaje nietknięty podczas wykonywania testu [1] [4].
- „Verify`: Ta metoda służy do sprawdzenia, czy określone wywołania metody występują zgodnie z oczekiwaniami. Pozwala sprawdzić, czy metoda została wywołana z określonymi argumentami i może być używana z różnymi trybami weryfikacji, takimi jak `` times () `,` a cover () `i` Atmost () '' w celu określenia liczby inwokacji [2] [7].

2. Tryfikacje weryfikacji:
- `verifyeroInteractions` nie obsługuje trybów weryfikacji. Po prostu sprawdza brak jakichkolwiek interakcji.
- `` Verify 'obsługuje wiele trybów weryfikacji, takich jak `times ()`, `a cochła ()`, `a cohleastonce ()` i `Atmost ()`, umożliwiając określenie, ile razy należy nazwać metodę [2] [7].

3. Zakon wywołania:
- „Verifyzerointeractions” nie dotyczy kolejności wywołań metod, ponieważ w ogóle nie sprawdza żadnych interakcji.
- `Verify` może być używane z` inorder` w celu weryfikacji kolejności inwokacji metody na próbnych obiektach. Jest to przydatne, gdy sekwencja wywołań metody jest ważna [2] [7].

4. Przypadki użycia:
- `verifyerointeractions` jest zwykle używany, gdy chcesz upewnić się, że próbny obiekt wcale nie jest używany w scenariuszu testowym. Pomaga to w izolowaniu testowanej jednostki i zapewnieniu, że nie wystąpiły skutki uboczne z powodu nieoczekiwanych interakcji [1] [4].
- „Verify` jest używany w scenariuszach, w których należy potwierdzić, że specyficzne interakcje występują między obiektami. Jest niezbędny do przetestowania oczekiwanego zachowania testowanego systemu [2] [7].

5. Związek z „VerifyNomoreInteractions”:
- „Verifyzerointeractions” Sprawdza, czy w ogóle nie wystąpiły żadne interakcje.
- „VerifyNomoreInteractions” Sprawdzanie, czy wszystkie interakcje w próbnym obiekcie zostały zweryfikowane. Zapewnia, że ​​po użyciu „Verify” dla określonych wywołania metod nie pozostały niezweryfikowane interakcje [3] [9].

Podsumowując, „Verifyerointeractions” to specjalistyczna metoda koncentrująca się na zapewnieniu żadnych interakcji, podczas gdy „Verify” jest bardziej wszechstronna, co pozwala sprawdzić określone interakcje i ich częstotliwość. Obie metody są niezbędne w testowaniu jednostkowym z Mockito, obsługując różne cele w zależności od scenariusza testowego.

Cytaty:
[1] https://www.dhiwise.com/post/how-to-use-verifyointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-to-mockoto-verify
[3] https://stackoverflow.com/questions/52396683/difference-between-verifyNomoreInteractions-and-verifyzerointeractions-in-gocchit
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyzerointeractions
[5] https://stackoverflow.com/questions/64239160/using-mockoto-when-to-mock-and-verify-vs-mockoto-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.digitallocean.com/community/tutorials/mockito-verify