În Mockito, `ori (n)` și `atleast (n)` sunt utilizate în metoda `verificare` pentru a verifica de câte ori este apelată o metodă pe un obiect Mock. Iată o explicație detaliată a fiecăruia:
Times (n)
- Scop: Această metodă verifică dacă o metodă se numește exact „n”. Dacă metoda se numește mai mult sau mai puțin de „n”, testul va eșua.- Exemplu: `Verificați (Mock, Times (2)). SomeMethod ();` se asigură că `someMethod ()` este numit exact de două ori.
- Utilizați cazul: Utilizați atunci când trebuie să vă asigurați un număr precis de invocații.
Atleast (n)
- Scop: Această metodă verifică dacă o metodă se numește cel puțin `n` de ori. Dacă metoda se numește mai puțin de „n”, testul va eșua, dar va trece dacă se numește mai mult de `n` de ori.- Exemplu: `Verificați (Mock, Atleast (2)). SomeMethod ();` se asigură că `someMethod ()` este numit cel puțin de două ori.
- Utilizați cazul: Utilizați atunci când doriți să vă asigurați un număr minim de invocații, dar nu vă interesează maximul.
Diferențe cheie
- Exact vs. Minimum: `Times (n)` necesită un număr exact de apeluri, în timp ce `atleast (n)` necesită cel puțin acel număr de apeluri.- Flexibilitate: `atleast (n)` este mai flexibil, deoarece permite mai multe apeluri decât se specifică, în timp ce „ori (n)` este strict în ceea ce privește numărul de apeluri.
- Manipularea erorilor: Dacă o metodă se numește mai multe ori decât se specifică cu „ori (n)”, Mockito va arunca o excepție (`toomanyactualinvocations`). Cu `atleast (n)`, va eșua numai dacă metoda se numește mai puține ori decât specificate (`toolittLeactualInvocations`).
În rezumat, „Times (N)` este utilizat pentru un control precis asupra numărului de apeluri de metodă, în timp ce `atleast (n)` este utilizat pentru a asigura un prag minim de apeluri fără a restricționa numărul maxim de apeluri.
Citări:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-times1-in-mockito
[2] https://minngh.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-and-without-times1-parameter
[7] https://www.digitacean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-n-times-with-mockito
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-which-was-cald-multiple-times/54233921