[英]Mocking static methods with jmockit (1.5) before class
根據Jmockit教程中的示例,此代碼應該可以解決問題:
@BeforeClass
public static void setUpClass() {
new MockUp<UtilJndi>(){
@Mock
public static String getDirectoryFromContext(Property jndiName) // line 66
throws DirectoryNotFoundException {
return "noDirectory";
}
};
}
但它顯示:
myclass.java:[66,29]錯誤:非法的靜態聲明
我該如何解決這個問題?
我將添加另一個對我有用的解決方法:
我創建了我的模擬類擴展MockUp:
public static class MockUtilJndi extends MockUp<UtilJndi> {
public MockUtilJndi() {
super();
}
@Mock
public static String getDirectoryFromContext(Property jndiName)
throws DirectoryNotFoundException {
return "noDirectory";
}
}
如果你注意到我在構造函數中調用了super()。 根據文檔的原因,如果你調用MockUp構造函數,它將改變目標類中的實現..所以一旦你在你的模擬類構造函數中有這個,你只需要在@BeforeClass注釋方法中創建你的類:
@BeforeClass
public static void setUpClass() {
new MockUtilJndi();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.