Home > Java > javaTutorial > How to Mock Private Methods in Mockito with PowerMock?

How to Mock Private Methods in Mockito with PowerMock?

Mary-Kate Olsen
Release: 2024-11-03 16:00:30
Original
281 people have browsed it

How to Mock Private Methods in Mockito with PowerMock?

Mocking Private Methods in Mockito with PowerMock

Testing classes with private methods can pose a challenge, especially when the correctness of those private methods is assumed. One solution to this is using PowerMock in conjunction with Mockito.

To mock a private method using PowerMock, follow these steps:

  1. Create a spy object: Use PowerMockito.spy() to create a spy object of the class you want to test.
  2. Use PowerMockito.when(): Define the behavior of the private method using PowerMockito.when(). This method takes three parameters:

    • The spy object
    • A method matcher (in this case, a method() matcher will suffice)
    • The behavior to return when the private method is called

For example, the following code mocks the private method "doTheGamble" to always return 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>
Copy after login
  1. Test the public method: Finally, you can use your spy object to test the public method that calls the private one.

By following these steps, you can effectively mock private methods for testing using PowerMock and Mockito.

The above is the detailed content of How to Mock Private Methods in Mockito with PowerMock?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template