我想测试一个类(使用Jukito和Mockito),不幸的是它扩展了另一个类,它有一个静态方法调用。有可能以某种方式跳过这个电话吗?我宁愿不使用PowerMockito。Jukito/Mockito静态方法测试
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类不是我写的,不能更改(不幸的是)。但是我的课程背后的想法是一样的,我只是改了名字,只留下了相关的部分。
即使我知道所有这些,我想我希望我错过了一些东西。由于我不太喜欢使用PowerMockito并且不能重写C类,因此此时我不会测试我的课程。我会接受你的答案,因为你花时间写一个简单的解释。 – CrazySabbath