Mockito怎么mock测试静态方法
时间: 2024-05-06 15:22:14 浏览: 230
JMOCKIT mock 静态方法 单元测试
3星 · 编辑精心推荐
Mockito不支持直接mock静态方法,因为Java语言不允许覆盖静态方法。但是,可以通过使用PowerMockito来mock静态方法。PowerMockito是一个扩展Mockito框架的库,它允许mock静态、final和私有方法。
以下是一个使用PowerMockito来mock静态方法的示例:
```java
import static org.mockito.Mockito.*;
import static org.powermock.api.mockito.PowerMockito.*;
@RunWith(PowerMockRunner.class)
@PrepareForTest(StaticClass.class)
public class TestClass {
@Test
public void testStaticMethod() {
mockStatic(StaticClass.class); // mock静态类
when(StaticClass.staticMethod(anyString())).thenReturn("mocked result"); // mock静态方法的返回值
String result = StaticClass.staticMethod("test"); // 调用静态方法
assertEquals("mocked result", result); // 验证mock结果
}
}
```
在这个示例中,首先需要使用`mockStatic`方法来mock静态类。然后,使用`when`方法来定义mock静态方法的返回值。最后,调用静态方法并验证结果是否正确。
还需要使用`@RunWith`和`@PrepareForTest`注解来告诉PowerMockito框架要mock哪些类。在这个示例中,需要mock的是`StaticClass`类。
阅读全文