mockito void静态方法
时间: 2023-09-01 14:08:26 浏览: 78
Mockito 是一种 Java 测试框架,可以用于模拟对象和行为,以便更容易地编写单元测试。Mockito 支持模拟静态方法,但要注意的是,它只能用于模拟非 final 的静态方法。
下面是一个使用 Mockito 模拟静态方法的示例:
```java
public class MyClass {
public static void myMethod(String arg) {
// 静态方法的实现
}
}
@Test
public void testMyClass() {
PowerMockito.mockStatic(MyClass.class);
Mockito.doNothing().when(MyClass.class);
MyClass.myMethod(Mockito.anyString());
// 调用 MyClass.myMethod() 时,不会执行实际的实现,而是执行模拟的行为
MyClass.myMethod("test");
PowerMockito.verifyStatic(Mockito.times(1));
MyClass.myMethod("test");
}
```
在这个示例中,我们使用 PowerMockito.mockStatic() 方法来模拟 MyClass 类的静态方法。然后,使用 Mockito.doNothing() 方法来指定当调用 MyClass.myMethod() 时不执行任何操作。
最后,使用 PowerMockito.verifyStatic() 方法来验证 MyClass.myMethod() 方法被调用了一次,且参数为 "test"。这样就可以完成对静态方法的模拟和测试了。
需要注意的是,使用 PowerMockito 来模拟静态方法需要添加 PowerMockito 的依赖,并设置 Mockito 的运行器和 PowerMockito 的运行器。在使用时应该避免滥用静态方法的模拟,否则可能会导致测试代码的可读性和可维护性下降。