Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kakšna je razlika med časom (n) in vsaj (n) v Mockitovi metodi preverjanja


Kakšna je razlika med časom (n) in vsaj (n) v Mockitovi metodi preverjanja


V Mockito se `Times (n)` in `vsaj (n)` uporabljata v okviru metode `preverjanje`, da preveri, kolikokrat se metoda imenuje na posmehljivem predmetu. Tu je podrobna razlaga vsakega:

krat (n)

- Namen: Ta metoda preverja, ali se metoda imenuje točno `n` krat. Če se metoda imenuje bolj ali manj kot `n` krat, test ne bo uspel.
- Primer: `Preveri (Mock, Times (2)). Somemethod ();` zagotavlja, da se `Somemethod ()` imenuje natančno dvakrat.
- Primer uporabe: Uporabite, ko morate zagotoviti natančno število priklic.

vsaj (n)

- Namen: Ta metoda preverja, ali se metoda imenuje vsaj "n` krat. Če se metoda imenuje manj kot "n` krat, test ne bo uspel, vendar bo minilo, če se imenuje več kot" n` krat.
- Primer: `Preveri (Mock, vsaj (2)). Somemethod ();` zagotavlja, da se `Somemethod ()` imenuje vsaj dvakrat.
- Primer uporabe: Uporabite, ko želite zagotoviti minimalno število priklic, vendar ne skrbi za maksimum.

Ključne razlike

- natančno v primerjavi z minimalnim: `časi (n)` zahteva natančno število klicev, medtem ko `vsaj (n)` zahteva vsaj to število klicev.
- Prilagodljivost: `vsaj (n)` je bolj prilagodljiva, saj omogoča več klicev, kot je določeno, medtem ko je `krat (n)` strog glede števila klicev.
- Ravnanje z napakami: Če se metoda imenuje večkrat, kot je določena z `Times (n)`, bo Mockito vrgel izjemo ("ToomanyactualInvocations"). Z `vsaj (n)` ne bo uspel le, če se metoda imenuje manj krat, kot je določena (`toolTleactianInvocations`).

Če povzamemo, se `Times (n)` uporablja za natančen nadzor nad številom klicev metode, medtem ko se `vsaj (n)` uporablja za zagotavljanje minimalnega praga klicev, ne da bi omejil največje število klicev.

Navedbe:
[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-times1-in-mockito
[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-and-without-times1-Parameter
[7] https://www.digitalocean.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-----wod-which-was-caled-moultiple-times/54233921