adr*_*obo 5 java testing jmockit mocking
根据Jmockit教程中的示例,此代码应该可以解决问题:
@BeforeClass
public static void setUpClass() {
new MockUp<UtilJndi>(){
@Mock
public static String getDirectoryFromContext(Property jndiName) // line 66
throws DirectoryNotFoundException {
return "noDirectory";
}
};
}
Run Code Online (Sandbox Code Playgroud)
但它显示:
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";
}
}
Run Code Online (Sandbox Code Playgroud)
如果你注意到我在构造函数中调用了super().根据文档的原因,如果你调用MockUp构造函数,它将改变目标类中的实现..所以一旦你在你的模拟类构造函数中有这个,你只需要在@BeforeClass注释方法中创建你的类:
@BeforeClass
public static void setUpClass() {
new MockUtilJndi();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3983 次 |
| 最近记录: |