In Mockito worden `Times (n)` en `minstens (n)` gebruikt binnen de methode `verify` om te controleren hoe vaak een methode op een mockobject wordt aangeroepen. Hier is een gedetailleerde uitleg van elk:
Times (n)
- Doel: deze methode verifieert dat een methode exact `n` tijden wordt genoemd. Als de methode meer of minder wordt genoemd dan 'niet, zal de test mislukken.- Voorbeeld: `verifieer (Mock, Times (2)). Somemethod ();` zorgt ervoor dat `Somemethod ()` exact twee keer wordt genoemd.
- Use case: gebruik wanneer u een nauwkeurig aantal aanroepingen moet garanderen.
minstens (n)
- Doel: deze methode verifieert dat een methode ten minste `n` tijden wordt genoemd. Als de methode minder wordt genoemd dan 'niet, zal de test mislukken, maar deze zal voorbijgaan als deze meer wordt genoemd dan' n` tijden.- Voorbeeld: `verifieer (Mock, minstens (2)). Somemethod ();` zorgt ervoor dat `Somemethod ()` minstens twee keer wordt genoemd.
- Use case: gebruik wanneer u een minimum aantal aanroepingen wilt garanderen, maar geeft niet om het maximum.
Belangrijkste verschillen
- Exact versus minimum: `Times (n)` vereist een exact aantal oproepen, terwijl `minstens (n)` op zijn minst dat aantal oproepen vereist.- Flexibiliteit: `minstens (n)` is flexibeler omdat het meer oproepen mogelijk maakt dan gespecificeerd, terwijl 'tijden (n) `strikt is over het aantal oproepen.
- Foutafhandeling: als een methode meer tijden wordt genoemd dan gespecificeerd met `Times (n)`, zal Mockito een uitzondering geven (`toManyactualInvocations '). Met `minstens (n)` zal het alleen falen als de methode minder tijden wordt genoemd dan gespecificeerd (`toolittleActualInvocations ').
Samenvattend wordt `Times (n)` gebruikt voor nauwkeurige controle over het aantal methodeaanroepen, terwijl `minstens (n)` wordt gebruikt om een minimale drempel van oproepen te garanderen zonder het maximale aantal oproepen te beperken.
Citaten:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-tween-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.ateast
[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-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-called-multiple-times/54233921