powermock如何模拟静态类中的带参无返回值私有方法
时间: 2024-03-09 09:46:36 浏览: 272
可以使用PowerMockito来模拟静态类中的带参无返回值私有方法。下面是一个示例代码:
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.powermock.api.mockito.PowerMockito.*;
@RunWith(PowerMockRunner.class)
@PrepareForTest(StaticClass.class)
public class StaticClassTest {
@Test
public void testPrivateMethod() throws Exception {
// mock静态类
mockStatic(StaticClass.class);
// 模拟私有方法
doNothing().when(StaticClass.class, "privateMethod", "param1", "param2");
// 调用测试方法
StaticClass.methodUnderTest();
// 验证私有方法是否被调用
verifyPrivate(StaticClass.class).invoke("privateMethod", "param1", "param2");
}
}
```
在这个示例中,我们使用PowerMockito的mockStatic方法来模拟静态类StaticClass。然后,我们使用doNothing方法来模拟私有方法privateMethod,该方法带有两个参数"param1"和"param2"。最后,我们使用verifyPrivate方法来验证私有方法是否被调用。
需要注意的是,为了使用PowerMockito来模拟静态类,我们需要在测试类上添加注解@RunWith(PowerMockRunner.class),并且在注解@PrepareForTest中指定需要被mock的静态类StaticClass。
阅读全文