【Java】 使用Mockito轻松模拟静态方法
import static org.mockito.Mockito.*;
public class SomeClass {
// 假设有一个静态方法需要模拟
public static int staticMethodToMock(int param) {
return param * 2;
}
}
public class SomeTest {
@Test
public void testStaticMethod() {
// 使用Mockito模拟静态方法
try (MockedStatic<SomeClass> theMock = Mockito.mockStatic(SomeClass.class)) {
// 配置模拟的行为
theMock.when(() -> SomeClass.staticMethodToMock(anyInt())).thenReturn(100);
// 调用模拟的方法
int result = SomeClass.staticMethodToMock(250);
// 验证结果
assertEquals(100, result);
}
// 测试其他逻辑...
}
}
这段代码展示了如何使用Mockito库来模拟静态方法staticMethodToMock
。首先,我们使用mockStatic
方法来打开一个MockedStatic
对象,然后通过when
方法来指定当静态方法被特定参数调用时应该返回的值。最后,我们断言模拟方法返回的值是我们预期的值。使用try-with-resources确保模拟的静态方法在测试完成后被正确地关闭和重置。
评论已关闭