W Mockito `Times (n)` i `przynajmniej (n)` są używane w metodzie „Verify`, aby sprawdzić, ile razy metoda jest wywoływana na próbnym obiekcie. Oto szczegółowe wyjaśnienie każdego:
Times (n)
- Cel: Ta metoda weryfikuje, że metoda nazywa się dokładnie „N”. Jeśli metoda nazywa się mniej lub mniej niż `n ', test się nie powiedzie.- Przykład: `Verify (Mock, Times (2)). Somemethod ();` zapewnia, że `` somemethod () jest nazywany dokładnie dwukrotnie.
- Przypadek użycia: Użyj, gdy trzeba zapewnić dokładną liczbę inwokacji.
przynajmniej (n)
- Cel: Ta metoda weryfikuje, że metoda nazywana jest co najmniej „n”. Jeśli metoda nazywa się mniej niż „n”, test się nie powiedzie, ale przejdzie, jeśli nazywa się więcej niż „n”.- Przykład: `Verify (próba, przynajmniej (2)). Somemethod ();` zapewnia, że „somemethod () jest nazywany co najmniej dwukrotnie.
- Przypadek użycia: Użyj, gdy chcesz zapewnić minimalną liczbę inwokacji, ale nie dbaj o maksimum.
Kluczowe różnice
- Dokładne vs. minimum: „Times (n)„ wymaga dokładnej liczby połączeń, podczas gdy „przynajmniej (n)” wymaga przynajmniej tej liczby połączeń.- Elastyczność: „przynajmniej (n)` `jest bardziej elastyczna, ponieważ pozwala na więcej połączeń niż określone, podczas gdy„ czasy (n) jest surowe w kwestii liczby połączeń.
- Obsługa błędów: jeśli metoda jest wywoływana więcej razy niż określona za pomocą „czasów (n)`, Mockleo rzuci wyjątek (`` toManyActualInvocations`). W przypadku „przynajmniej (n)` `uda się zawieść tylko wtedy, gdy metoda nazywana jest mniej niż określona („ ToolittleActualInvocations ”).
Podsumowując, „czasy (n)` jest używane do precyzyjnej kontroli nad liczbą wywołań metod, podczas gdy „przynajmniej (n)` jest używany do zapewnienia minimalnego progu połączeń bez ograniczenia maksymalnej liczby połączeń.
Cytaty:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-andimes1-in-gocchito
[2] https://mincong.io/2019/09/22/mockito-verify/
[3] https://github.com/mockk/mockk
[4] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[5] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.atleast
[6] https://stackoverflow.com/questions/60969650/use-of-verify-method-with--without-times1-parametr
[7] https://www.digitallocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-nimes-with-mockoto
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-hhich-Was-Called-Multiple-times/54233921