mockito 私有方法单元测试
时间: 2023-08-08 19:10:01 浏览: 322
在使用 Mockito 进行单元测试时,我们可以使用 Mockito 的 `PowerMockito` 扩展来测试私有方法。
以下是一个示例:
```java
public class MyClass {
private String getPrivateValue() {
return "Private Value";
}
}
@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class MyClassTest {
@Test
public void testGetPrivateValue() throws Exception {
MyClass myClass = new MyClass();
PowerMockito.spy(myClass);
PowerMockito.when(myClass, "getPrivateValue").thenReturn("Mocked Value");
String result = Whitebox.invokeMethod(myClass, "getPrivateValue");
assertEquals("Mocked Value", result);
}
}
```
在这个示例中,我们使用了 `PowerMockito.spy` 方法来创建一个 `MyClass` 的 spy 对象。接着,使用 `PowerMockito.when` 方法来模拟 `getPrivateValue` 方法的返回值。最后,使用 `Whitebox.invokeMethod` 方法来调用私有方法。
需要注意的是,使用 PowerMockito 扩展会使测试变得更加复杂,并且可能会影响测试的可读性和可维护性。因此,应该在必要时才使用它来测试私有方法。
阅读全文