Maison >Java >javaDidacticiel >Comment se moquer des méthodes privées dans Mockito avec PowerMock ?

Comment se moquer des méthodes privées dans Mockito avec PowerMock ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 16:00:30293parcourir

How to Mock Private Methods in Mockito with PowerMock?

Se moquer des méthodes privées dans Mockito avec PowerMock

Tester des classes avec des méthodes privées peut poser un défi, en particulier lorsque l'exactitude de ces méthodes privées est supposé. Une solution à ce problème consiste à utiliser PowerMock en conjonction avec Mockito.

Pour simuler une méthode privée à l'aide de PowerMock, suivez ces étapes :

  1. Créez un objet espion : Utilisez PowerMockito.spy() pour créer un objet espion de la classe que vous souhaitez tester.
  2. Utilisez PowerMockito.when() : Définissez le comportement de la méthode privée à l'aide de PowerMockito .quand(). Cette méthode prend trois paramètres :

    • L'objet espion
    • Un matcher de méthode (dans ce cas, un matcher method() suffira)
    • Le comportement à retourner lorsque la méthode privée est appelée

Par exemple, le code suivant se moque de la méthode privée "doTheGamble" pour toujours renvoyer true :

<code class="java">CodeWithPrivateMethod spy = PowerMockito.spy(new CodeWithPrivateMethod());

when(spy, method(CodeWithPrivateMethod.class, "doTheGamble", String.class, int.class))
        .withArguments(anyString(), anyInt())
        .thenReturn(true);</code>
  1. Testez la méthode publique : Enfin, vous pouvez utiliser votre objet espion pour tester la méthode publique qui appelle la méthode privée.

En suivant ces étapes, vous pouvez efficacement vous moquer de la méthode privée. méthodes de test à l'aide de PowerMock et Mockito.

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