尝试将Mockito的间谍功能用于我的JUnit测试。我最初有一个班级:
public class App1 {
public String method1() {
sayHello();
}
public sayHello() {
Systems.out.println("Hello");
}
}
我的测试类中的所有内容都与上面的类中的mockito间谍一起正常工作:
@Test(expected = IOException.class)
public void testMethod1Failure(){
App1 a1 = spy(App1);
doThrow(IOException.class).when(a1).sayHello();
a1.method1();
}
但之后我不得不改变方法并将sayHello()方法转换为另一个用作静态方法的类:
public class App1 {
public String method1() {
App2.sayHello();
}
}
public class App2 {
public static void sayHello() {
Systems.out.println("Hello");
}
}
在此更改之后,我的原始JUnit测试用例被破坏,我不确定如何使用Mockito间谍启动调用外部App2静态方法的App1 ...有谁知道我怎么做?提前致谢
答案 0 :(得分:2)
Mockito不支持模拟静态代码。以下是处理它的一些方法: