Maison > Java > javaDidacticiel > Comment se moquer efficacement des méthodes Void dans Mockito ?

Comment se moquer efficacement des méthodes Void dans Mockito ?

DDD
Libérer: 2024-12-07 10:59:11
original
526 Les gens l'ont consulté

How to Effectively Mock Void Methods in Mockito?

Se moquer des méthodes Void avec Mockito

Dans le modèle Observer, les observateurs définissent généralement des méthodes avec des types de retour void. Lorsque vous essayez de vous moquer de telles méthodes à l'aide de Mockito, vous pouvez rencontrer des défis.

Défi : Les simulations de méthodes sans valeurs de retour ne sont pas automatiquement déclenchées. Par conséquent, les assertions liées aux changements d'état ou aux invocations de méthodes peuvent échouer dans les tests unitaires.

Solution :

Utilisez doThrow(), doAnswer(), doNothing(), ou doReturn() méthodes de Mockito pour manipuler le comportement des méthodes void.

Par exemple, pour déclencher une exception lorsqu'une méthode est appelée :

Mockito.doThrow(new Exception()).when(instance).methodName();
Copier après la connexion

Pour combiner avec les actions suivantes :

Mockito.doThrow(new Exception()).doNothing().when(instance).methodName();
Copier après la connexion

Dans l'exemple fourni, se moquer de la méthode setState peut être réalisé en utilisant doAnswer method :

World mockWorld = mock(World.class); 
doAnswer(new Answer<Void>() {
    public Void answer(InvocationOnMock invocation) {
      Object[] args = invocation.getArguments();
      System.out.println("called with arguments: " + Arrays.toString(args));
      return null;
    }
}).when(mockWorld).setState(anyString());
Copier après la connexion

Avec cette technique, vous pouvez vous moquer des méthodes void, définir des attentes et effectuer des assertions pour vérifier leur comportement dans vos tests unitaires.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal