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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 03:39:08514parcourir

How to Mock Void Methods in Mockito Effectively?

Les méthodes de simulation de vide avec Mockito

Les méthodes de simulation de vide dans Mockito peuvent être réalisées en utilisant les méthodes de doThrow(), doAnswer(), doNothing () et les familles doReturn(). Ces méthodes vous permettent de spécifier le comportement d'une méthode simulée qui a un type de retour void.

Exemple :

// Mock a void method that throws an exception
Mockito.doThrow(new Exception()).when(instance).methodName();

// Mock a void method that performs some action
Mockito.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(instance).methodName();

Dans votre exemple spécifique, vous pouvez vous moquer du setState() dans la classe World comme suit :

// Mock the World class
World mockWorld = mock(World.class); 

// Mock the setState method to print the arguments passed to it
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());

Maintenant, lorsque vous appelez mockWorld.setState() dans votre test, la réponse fournie sera être exécuté, vous permettant de vérifier que les arguments corrects ont été transmis à la méthode.

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!

Déclaration:
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