V Mockito se v metodě `ověřte` používají` časy (n) `a` alespoň (n) `k kontrole, kolikrát je metoda vyvolána na falešný objekt. Zde je podrobné vysvětlení každého:
times (n)
- Účel: Tato metoda ověřuje, že metoda se nazývá přesně „n“. Pokud se metoda vyvolá více či méně než „n“, test selže.- Příklad: `ověřte (falešné, časy (2)). Somemethod ();` zajišťuje, že se `somemethod ()` nazývá přesně dvakrát.
- Případ použití: Použijte, když potřebujete zajistit přesný počet vyvolání.
ALSTLEAST (N)
- Účel: Tato metoda ověřuje, že metoda se nazývá alespoň čas. Pokud se metoda nazývá menší než „n“ časy, test selže, ale projde, pokud se nazývá více než „n“ časy.- Příklad: `ověřte (falešná, alespoň (2)). Somemetod ();` zajišťuje, že se `somemetod ()` nazývá alespoň dvakrát.
- Případ použití: Použijte, pokud chcete zajistit minimální počet vyvolání, ale nestaráte se o maximum.
Klíčové rozdíly
- Přesné vs. minimum: `časy (n)` vyžaduje přesný počet hovorů, zatímco `alespoň (n)` vyžaduje alespoň tento počet hovorů.- Flexibilita: `alespoň (n)` je flexibilnější, protože umožňuje více hovorů, než je uvedeno, zatímco „časy (n)` je přísná ohledně počtu hovorů.
- Manipulace s chybami: Pokud se metoda vyvolá vícekrát, než je určena s `časy (n)`, Mockito vyvolá výjimku („toomanyactualinvocations“). S „alespoň (n)“ selže pouze tehdy, pokud je metoda volána méněkrát, než je uvedena (`toalittleactualInvocations`).
Stručně řečeno, „časy (n)“ se používá pro přesnou kontrolu nad počtem volání metod, zatímco „alespoň (n)“ se používá k zajištění minimálního prahu hovorů bez omezení maximálního počtu hovorů.
Citace:[1] https://stackoverflow.com/questions/58176580/What-IS-the-difference-TeaNeastOnce-and-times1-in-mockito
[2] https://mincong.io/2019/09/22/MockIto-rify/
[3] https://github.com/mockk/mockk
[4] https://site.mockito.org/javadoc/current/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-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-method-was-was-called-limes/54233921