如何对本地方法的initialcontext本地成员进行单元测试

时间:2015-10-09 13:35:48

标签: junit4

我的代码看起来像这样

 Private void do lookup(){ 
   Context ctx;
   Try{ 
       ctx = new InitialContext();
       sampref = ctx.lookup("ejb/objEjb");

    }catch{exception ex){
   .....
     }
}

作为内部方法流程的一部分调用的方法。请告诉我应该如何处理dz。    由于junit运行,通过执行一些“System.setproperty(”...“)”之前可以覆盖initialcontext。我刚读到某个地方。

1 个答案:

答案 0 :(得分:0)

Yuo几乎没有选择

1尝试反转依赖:不是让查找方法(或其实际调用者)创建上下文,而是可以在外部创建上下文并将其作为依赖项/参数传递

2如上所述,但您可以通过工厂创建上下文,以便您可以使用模拟工厂并返回您想要的任何上下文

3使用像mockito这样的测试工具你可以监视你想要测试的实例,你将上下文的创建移动到你可以存根的受保护方法(你不关心测试上下文本身的创建) )这样你就可以返回一个模拟上下文

4使用像powermockito这样的测试工具你可以将调用存根到InitialContext类中的静态工厂方法,而不是返回一个模拟上下文,比如InitialContext.create();