Dans Mockito, `Times (n)` et `au moins (n)» sont utilisés dans la méthode `Verify» pour vérifier combien de fois une méthode est appelée sur un objet simulé. Voici une explication détaillée de chacun:
Times (n)
- Objectif: cette méthode vérifie qu'une méthode est appelée exactement «n». Si la méthode est appelée plus ou moins que «n», le test échouera.- Exemple: `Vérifier (Mock, Times (2)). SomeMethod ();` s'assure que «SomeMethod ()» est appelé exactement deux fois.
- Cas d'utilisation: utilisez lorsque vous devez assurer un nombre précis d'invocations.
au moins (n)
- Objectif: cette méthode vérifie qu'une méthode est appelée au moins `n` fois. Si la méthode est appelée moins de `n ', le test échouera, mais il passera s'il est appelé plus que« n ».- Exemple: `Vérifier (Mock, au moins (2)). SomeMethod ();` s'assure que «SomeMethod ()» est appelé au moins deux fois.
- Cas d'utilisation: utilisez lorsque vous souhaitez assurer un nombre minimum d'invocations mais ne vous souciez pas du maximum.
Différences clés
- Exact vs minimum: «fois (n)» nécessite un nombre exact d'appels, tandis que «au moins (n)» nécessite au moins ce nombre d'appels.- Flexibilité: «Au moins (n)» est plus flexible car il permet plus d'appels que spécifiés, tandis que «fois (n)» est strict sur le nombre d'appels.
- Gestion des erreurs: si une méthode est appelée plus de fois que spécifiée avec «fois (n)», Mockito lancera une exception («ToomanyActualInvocations»). Avec `au moins (n) ', il échouera que si la méthode est appelée moins de temps que spécifiée (` TooleTtleactualInvocations`).
En résumé, «Times (n)» est utilisé pour un contrôle précis sur le nombre d'appels de méthode, tandis que «au moins (n)» est utilisé pour assurer un seuil minimum d'appels sans restreindre le nombre maximum d'appels.
Citations:[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-imes1-in-mockito
[2] https://mingong.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-tetsting-advisor/selenium/methods/org.mockito.mockito.atleast
[6] https://stackoverflow.com/questions/60969650/Use-of-verify-method-with-and-without-times1-paramètre
[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-hich-was-called-multiple-memes/54233921