我想測試一個類(使用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