我正在做我的第一個Java EE項目,我想進行測試。我搜索並發現,自從EJB 3.1以來,就有可能使用嵌入式EJB容器來測試業務層。我正在使用WildFly,但我還沒有找到如何配置嵌入式容器。WildFly:如何使用嵌入式容器測試EJB?
那麼,如何正確配置嵌入式容器並使用WildFly測試EJB 3.1+?
我感謝任何幫助!
我正在做我的第一個Java EE項目,我想進行測試。我搜索並發現,自從EJB 3.1以來,就有可能使用嵌入式EJB容器來測試業務層。我正在使用WildFly,但我還沒有找到如何配置嵌入式容器。WildFly:如何使用嵌入式容器測試EJB?
那麼,如何正確配置嵌入式容器並使用WildFly測試EJB 3.1+?
我感謝任何幫助!
您必須使用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)的輕量級包裝。然後你可以使用普通單元測試來測試它們。
您是否在尋找[Arquillian](http://www.arquillian.org),Wildfly的集成測試框架?或者你是否正在尋找關於[在單元測試中嵌入EJB容器]的Stackoverflow問題中討論過的內容(http://stackoverflow.com/questions/24310912/arquillian-vs-ejb-embeddable-container)? – fxnn
您好@fxnn,這將是第二個選項,我已經找到了許多相同的代碼的帖子,但它似乎有一個differente設置取決於你使用的AS,在我的情況下它是蜻蜓。 – codenoob
您可以使用[wildfly-maven-plugin](https://docs.jboss.org/wildfly/plugins/maven/latest/)在測試過程中啓動服務器,並在測試完成時將其關閉。 –