我的代码看起来像这样
Private void do lookup(){
Context ctx;
Try{
ctx = new InitialContext();
sampref = ctx.lookup("ejb/objEjb");
}catch{exception ex){
.....
}
}
作为内部方法流程的一部分调用的方法。请告诉我应该如何处理dz。 由于junit运行,通过执行一些“System.setproperty(”...“)”之前可以覆盖initialcontext。我刚读到某个地方。
答案 0 :(得分:0)
Yuo几乎没有选择
1尝试反转依赖:不是让查找方法(或其实际调用者)创建上下文,而是可以在外部创建上下文并将其作为依赖项/参数传递
2如上所述,但您可以通过工厂创建上下文,以便您可以使用模拟工厂并返回您想要的任何上下文
3使用像mockito这样的测试工具你可以监视你想要测试的实例,你将上下文的创建移动到你可以存根的受保护方法(你不关心测试上下文本身的创建) )这样你就可以返回一个模拟上下文
4使用像powermockito这样的测试工具你可以将调用存根到InitialContext类中的静态工厂方法,而不是返回一个模拟上下文,比如InitialContext.create();