WildFly:如何使用嵌入式容器测试 EJB?

WildFly: How to test EJB using embedded container?

我正在做我的第一个 Java EE 项目,我想进行一次测试。我搜索了一下,发现从EJB 3.1开始,就可以使用嵌入式EJB容器来测试业务层了。我正在使用 WildFly,但我还没有找到如何配置嵌入式容器。

那么,如何正确配置嵌入式容器并使用 WildFly 测试 EJBs 3.1+?

感谢任何帮助!

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

这个框架的作用是:在后台创建 jboss 的实例。一切都部署在那里,这样您就可以 运行 您的 ejb 或 servlet 在那个 "background" 容器上。

配置它并不容易,所以我建议您从 Jboss eclipse 工具开始。代码看起来像这样:

@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) 的简单包装器,真正的逻辑所在。然后你可以使用普通单元测试来测试这些。