Maison > Java > javaDidacticiel > Mockito Mocking : When() vs doReturn() – Quand dois-je utiliser lequel ?

Mockito Mocking : When() vs doReturn() – Quand dois-je utiliser lequel ?

Linda Hamilton
Libérer: 2024-12-07 14:11:16
original
389 Les gens l'ont consulté

Mockito Mocking: When() vs. doReturn() – When Should I Use Which?

Utilisation de Mockito : DoReturn() vs. When()

Dans le domaine de Mockito, deux méthodes émergent avec des similitudes apparentes : doReturn( ) et quand(). Les deux facilitent les fonctionnalités de moquerie d'objets, suscitant la requête : pourquoi avoir besoin de deux méthodes analogues ?

La réponse réside dans leur comportement lorsqu'ils sont utilisés avec des objets espionnés (annotés avec @Spy) par rapport à des objets moqués (annotés avec @Mock). ). Contrairement aux objets simulés, les objets espionnés conservent les implémentations réelles de la méthode de la classe qu'ils étendent.

When() thenReturn() appelle la méthode d'origine avant de remplacer la valeur de retour spécifiée. Par conséquent, les exceptions levées par la méthode doivent être gérées dans le test. Par exemple :

@Spy
private MyClass myClass;

// Continues executing the actual method, potentially throwing an exception
when(myClass.anotherMethodInClass()).thenReturn("test");
Copier après la connexion

DoReturn() when(), en revanche, intercepte complètement l'appel de méthode. Cela empêche l'exécution de la méthode d'origine et élimine le risque d'exceptions :

// Bypasses the actual method call, returning the specified value
doReturn("test").when(myClass).anotherMethodInClass();
Copier après la connexion

Comprendre cette distinction est crucial lorsque l'on travaille avec des objets espionnés. Dans les situations où la méthode espionnée peut déclencher des erreurs, doReturn() offre une alternative sûre à when(), garantissant une expérience de test fluide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal