我正在尝试测试一个类(使用 Jukito 和 Mockito),不幸的是它扩展了另一个具有静态方法调用的类。是否有可能以某种方式跳过这个电话?我宁愿不使用 PowerMockito。
public class A extends B {
@Inject
public A(final String s){
super(s);
}
}
public abstract class B {
private String s;
protected String m = C.get().createUniqueId(); //Exception is thrown here
public B(String s){
this.s = s;
}
}
public class C {
private static C c; //assume this is never null
public static C get() {
return c;
}
public final native String createUniqueId() {}
}
@RunWith(JukitoRunner.class)
public class ATest {
@Inject
A a;
@Test
public void onMethod1Test(){
}
}
运行 ATest 时,出现以下错误:
Error injecting constructor, java.lang.UnsatisfiedLinkError: C
我认为这是因为静态方法,我错了吗?
请注意,所有课程都只是我真实课程中的示例,C 课程不是我编写的,无法更改(不幸的是)。但是我的课程背后的想法和这些是一样的,我只是改了名字,只留下了相关的部分。