I Mockito används "Times (n)" och "Atleast (n)" i metoden "Verify" för att kontrollera hur många gånger en metod kallas på ett håligt objekt. Här är en detaljerad förklaring av var och en:
Times (n)
- Syfte: Denna metod verifierar att en metod kallas exakt "n" -tider. Om metoden kallas mer eller mindre än "n" gånger kommer testet att misslyckas.- Exempel: `Verifiera (håna, tider (2)). Somemethod ();` säkerställer att `Somemethod ()` kallas exakt två gånger.
- Använd fall: Använd när du behöver säkerställa ett exakt antal invokationer.
åtminstone (n)
- Syfte: Denna metod verifierar att en metod kallas åtminstone "n" -tider. Om metoden kallas mindre än "n" -tider kommer testet att misslyckas, men det kommer att passera om det kallas mer än "n" -tider.- Exempel: `Verifiera (håna, åtminstone (2)). Somemethod ();` säkerställer att `Somemethod ()` kallas minst två gånger.
- Använd fall: Använd när du vill säkerställa ett minimum antal invokationer men bryr sig inte om det maximala.
Nyckelskillnader
- Exakt kontra minimum: `Times (n)` kräver ett exakt antal samtal, medan `Atleast (n) 'kräver åtminstone det antalet samtal.- Flexibilitet: `Atleast (n)` är mer flexibel eftersom det möjliggör fler samtal än specificerat, medan `Times (n)` är strikt om antalet samtal.
- Felhantering: Om en metod kallas fler gånger än anges med `Times (n)`, kommer Mockito att kasta ett undantag (`ToomanyActualInvocations '). Med `Atleast (n)` kommer det bara att misslyckas om metoden kallas färre tider än specificerat (`TOOLITTLEACTUALINVOCATIONS ').
Sammanfattningsvis används "Times (n)" för exakt kontroll över antalet metodsamtal, medan `Atleast (n) 'används för att säkerställa en minsta tröskel för samtal utan att begränsa det maximala antalet samtal.
Citeringar:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-times1-in-mockito
[2] https://incong.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
]