繁体   English   中英

使用注入的EJB对Spring POJO进行单元测试

[英]Unit testing a Spring POJO with injected EJBs

我不确定这是否可行,但我试图针对已注入EJB的Spring POJO进行Spring Junit测试。 当我运行测试时,我在测试POJO中总是在注入的EJB上获得nullpointerexception。 问题在于POJO的方法不希望将EJB接口作为方法参数,因此当通过Spring上下文加载我的POJO时,它们必须可用。 我在weblogic 10.3容器上使用Spring 2.5和EJB 3.0。 我确实将<context:annotation-config/>到我的spring上下文文件中。

例如,类似于下面的代码,我有一个被注入POJO的EJB,并且我想针对MySpringPojo方法进行单元测试。 我已经看到,无论我如何尝试测试,我的EJB都不会注入POJO中以运行测试。 谁能建议我们如何测试这种情况? 任何有关代码片段的帮助都将非常棒...

public class MySpringPojo {
   @EJB
   private GreetingManager greeting;

   public String greetUser(String name) {
      return greeting.generateGreeting(name);
   }
}

@Remote
public interface GreetingManager {
   public String generateGreeting(String name);
}

@Stateless
public class GreetingManagerBean implements GreetingManager {
   public String generateGreeting(String name) {
       return "Hello" + name;
   }
}

-索努

  1. 既然你正在运行的非Java EE环境的JUnit,所以真正的EJB将不可用。
  2. 您需要做的是添加GreetingManager的存根实现,例如GreetingManagerStub,并测试您的业务逻辑。

我不确定您是否仍然需要答案,但是我写了一篇文章,将EJB注入Spring并在Weblogic容器中测试POJO。 您可以在此处阅读有关内容。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM