mockito inline mock maker supports static
时间: 2024-10-21 22:18:09 浏览: 16
Spring Boot单元测试中使用mockito框架mock掉整个RedisTemplate的示例
Mockito是一个流行的Java单元测试框架,它支持inline mock的创建,使得在编写测试时可以快速地生成简单的mock对象。Inline mock maker允许你在构造函数初始化阶段就直接声明mock的行为,不需要额外的setup()方法。当你需要模拟静态方法或类时,Mockito的`@Spy`注解配合`doReturn()`、`doThrow()`等方法可以让你对静态方法进行mock。
例如:
```java
import org.mockito.Inline;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@Mock
@Inline(value = "new MyClass()", relaxed = true) // relaxed=true表示对static字段的mock放宽限制
public static class MyClass {
public static String staticMethod() {
return "original value";
}
}
MyClass myMock = MyClass.getInstance(); // 使用mock对象替代实际的静态类实例
// 现在我可以在测试中控制myMock.staticMethod()的行为
when(myMock.staticMethod()).thenReturn("mocked value");
```
阅读全文