2015-05-11 59 views
7

我正在做我的第一個Java EE項目,我想進行測試。我搜索並發現,自從EJB 3.1以來,就有可能使用嵌入式EJB容器來測試業務層。我正在使用WildFly,但我還沒有找到如何配置嵌入式容器。WildFly:如何使用嵌入式容器測試EJB?

那麼,如何正確配置嵌入式容器並使用WildFly測試EJB 3.1+?

我感謝任何幫助!

+1

您是否在尋找[Arquillian](http://www.arquillian.org),Wildfly的集成測試框架?或者你是否正在尋找關於[在單元測試中嵌入EJB容器]的Stackoverflow問題中討論過的內容(http://stackoverflow.com/questions/24310912/arquillian-vs-ejb-embeddable-container)? – fxnn

+0

您好@fxnn,這將是第二個選項,我已經找到了許多相同的代碼的帖子,但它似乎有一個differente設置取決於你使用的AS,在我的情況下它是蜻蜓。 – codenoob

+0

您可以使用[wildfly-maven-plugin](https://docs.jboss.org/wildfly/plugins/maven/latest/)在測試過程中啓動服務器,並在測試完成時將其關閉。 –

回答

5

您必須使用jboss本身的框架arquillian http://www.mastertheboss.com/jboss-frameworks/arquillian/arquillian-tutorial

這個框架做的是這樣的:在後臺創建jboss的實例。所有東西都部署在那裏,以便您可以在該「後臺」容器上運行ejb或servlet。

配置它並不容易,所以我建議你從eclipse的Jboss Tools開始。代碼看起來那麼像這樣:

@Deployment 
public static Archive<?> createTestArchive() { 
    return ShrinkWrap.create(WebArchive.class, "test-demo.war") 
      .addAsResource("META-INF/persistence.xml") 
      .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); 
} 

我不贊成這種做法,這真是一個單獨的部署,你需要充分了解WAR和EJB封裝和所有其他細節的結構。

這真的會更好,你的EJB,JPA和Servlet bean只是真正的邏輯所在的普通Java類(POJO's)的輕量級包裝。然後你可以使用普通單元測試來測試它們。

相關問題