2012-01-10 71 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,並測試您的業務邏輯。