Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon En quoi Verifyzeroiner Interactions diffère-t-il des autres méthodes de vérification de Mockito


En quoi Verifyzeroiner Interactions diffère-t-il des autres méthodes de vérification de Mockito


Dans Mockito, `VerifyzeroInteractions` est une méthode de vérification spécialisée utilisée pour s'assurer qu'aucun appel de méthode n'est effectué sur un objet moqué lors d'un test. Cette méthode est cruciale pour maintenir la pureté des tests unitaires en empêchant des interactions involontaires qui pourraient indiquer des défauts dans la logique ou les dépendances inutiles.

Différences par rapport aux autres méthodes de vérification

1. Objectif et comportement:
- `VerifyZeroInteractions`: Cette méthode vérifie qu'aucun appel de méthode n'a été effectué sur un objet moqué. Si un appel de méthode est détecté, Mockito lance une exception, provoquant l'échec du test. Il est utilisé pour affirmer qu'un objet simulé reste intact pendant l'exécution du test [1] [4].
- `Vérifier ': cette méthode est utilisée pour vérifier que des appels de méthode spécifiques se produisent comme prévu. Il vous permet de vérifier si une méthode a été appelée avec des arguments spécifiques et peut être utilisée avec divers modes de vérification comme `` Times () ', `atleast ()', et` atmost () 'pour spécifier le nombre d'invocations [2] [7].

2. Modes de vérification:
- `VerifyZeroInteractions` ne prend pas en charge les modes de vérification. Il vérifie simplement l'absence de toute interaction.
- `Verify` prend en charge plusieurs modes de vérification, tels que` Times () `,` ATLEAT () ', `ATLEASTONCE ()', et` AUTS PLUST () ', vous permettant de spécifier combien de fois une méthode doit être appelée [2] [7].

3. Ordonnance d'invocation:
- `VerifyzeroInteractions` ne se préoccupe pas de l'ordre des appels de méthode car il vérifie le tout d'interactions.
- «Verify» peut être utilisé avec «InOrder» pour vérifier l'ordre des invocations de méthode sur les objets simulés. Ceci est utile lorsque la séquence des appels de méthode est importante [2] [7].

4. Cas d'utilisation:
- `VerifyZeroInteractions` est généralement utilisé lorsque vous souhaitez vous assurer qu'un objet simulé n'est pas du tout utilisé dans un scénario de test. Cela aide à isoler l'unité testée et à garantir que aucun effet secondaire ne se produit en raison d'interactions inattendues [1] [4].
- `Verify` est utilisé dans les scénarios où vous devez confirmer que des interactions spécifiques se produisent entre les objets. Il est essentiel pour tester le comportement attendu d'un système testé [2] [7].

5. Relation avec `VerifyNomoreInteractions»:
- `VerifyzeroInteractions` vérifie qu'aucune interaction ne s'est produite du tout.
- «VerifyNomoreInteractions» vérifie que toutes les interactions sur un objet simulé ont été vérifiées. Il garantit qu'il n'y a plus d'interactions non vérifiées après avoir utilisé «Verify» pour des appels de méthode spécifiques [3] [9].

En résumé, «VerifyzeroInteractions» est une méthode spécialisée axée sur la garantie qu'aucune interaction ne se produit, tandis que «Verify» est plus polyvalent, vous permettant de vérifier les interactions spécifiques et leur fréquence. Les deux méthodes sont essentielles dans les tests unitaires avec Mockito, servant des fins différentes en fonction du scénario de test.

Citations:
[1] https://www.dhiwise.com/post/how-to-use-verifyzererinteractions-forts-better-flutter-st-test
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-t--mockito-very
[3] https://stackoverflow.com/questions/52396683/différence-between-verifynomoreinteractions-and-verifyzeroteractions-in--mockit
[4] https://www.lambdatest.com/automation-tetsting-advisor/selenium/methods/org.mockito.mockito.verifyzerererinteractions
[5] https://stackoverflow.com/questions/64239160/using-mockito- when-to-mock-and-verify-vs-mockito-verify
[6] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[7] https://www.toptal.com/java/a-guide-to-everyday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify