2012-01-10 49 views
1

我不确定这是否可能,但是我想要针对已注入EJB的Spring POJO提出Spring Junit测试。当我运行测试时,在测试POJO中,我总是在注入的EJB上获得nullpointerexception。问题是POJO的方法不希望EJB接口作为方法参数,所以当我的POJO通过spring上下文加载时它们需要可用。我在weblogic 10.3容器上使用Spring 2.5和EJB 3.0。我在我的spring上下文文件中添加了<context:annotation-config/>使用注入的EJB测试Spring POJO的单元

例如,我有一个EJB被注入类似于下面的代码的POJO,我想对MySpringPojo方法进行单元测试。我已经看到,无论我如何测试,我的EJB都不会被注入到POJO中,以便测试运行。任何人都可以请建议我们如何测试这种情况?既然你正在运行的非Java EE环境的JUnit用代码片段任何帮助将是真棒......

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; 
    } 
} 

-Sonu

回答

0

我不确定你是否仍然需要一个答案,但我写了一篇文章,将EJB注入Spring并在Weblogic容器中测试POJO。你可以阅读它here

希望这会有所帮助。

+0

对不起马里奥你的公主是在另一个城堡:(链接死了。为了避免这种答案添加提取物,我知道这是最容易发布的链接,但你可能已经看到它可能会消失:( – 2016-09-09 16:56:09

0
  1. ,所以真正的EJB将不可用。
  2. 您需要做的是添加GreetingManager的存根实现,例如GreetingManagerStub,并测试您的业务逻辑。