【问题标题】:EJB 3.1 Embedded API - Unit test EJB + JPA entitiesEJB 3.1 Embedded API - 单元测试 EJB + JPA 实体
【发布时间】:2011-02-15 23:59:18
【问题描述】:

有没有人为已有的项目这样做或尝试这样做?
这里似乎有两个选择,要么使用embedded EJB API,基本上就是下面的类

javax.ejb.embeddable.EJBContainer

期望配置 glassfish v3 安装可用(应用程序范围的资源将使这更容易)。

替代方法是使用嵌入式 glassfish jar 文件和 embedded glassfish API

我正在寻找已经或正在这样做的人的反馈,带有简单 EJB 和测试用例的博客链接等等。

如果您使用任何其他 EJB 3.1 容器完成此操作,请随时分享。

  1. 您是否使用任何特定的测试框架而不是您首选的工具?
  2. 您使用了哪种 JPA 2.0 实现,这样做有什么特别的原因吗?
  3. 如果您使用 glassfish,您使用了上述哪种策略?如果不是,那么您使用的是哪个 EJB 3.1 容器?
  4. 如果您成功地做到了这一点,是否值得付出努力?您会为另一个现有项目再次这样做吗?

【问题讨论】:

    标签: java unit-testing jpa ejb-3.1 jpa-2.0


    【解决方案1】:

    这里似乎有两种选择,一种是使用嵌入式 EJB API (...),它需要配置的 glassfish v3 安装可用。

    不,您也可以在您的项目中使用最小域。

    我正在寻找已经或正在这样做的人的反馈,带有简单 EJB 和测试用例的博客链接等等。

    Unit Testing EJBs and JPA with Embeddable GlassFish 的启发,我在我的宠物项目(在 Maven 下)上完成了 EJB 3.1 和 JPA 的集成测试。阅读它绝对值得。

    您是否因为某个特定的测试框架不是您的首选工具而使用它?

    没有。

    您使用了哪个 JPA 2.0 实现,这样做有什么特别的原因吗?

    我使用了 EclipseLink(因为它当时可用)。

    如果您使用 glassfish,您使用了上述哪种策略?如果不是,那么您使用的是哪个 EJB 3.1 容器?

    我使用了嵌入式 EJB API,我计划在其他 Java EE 6 容器可用时在它们上运行我的代码。

    如果您成功地做到了这一点,是否值得付出努力?您会为另一个现有项目再次这样做吗?

    嗯,我认为集成/功能测试很有价值,并且发现嵌入式 EJB API 非常适合。即使我不认为我的样本是一个现实生活中的项目,使用它也不是一件痛苦的事。

    对于更复杂的场景,我会关注maven-embedded-glassfish-plugin(另请参阅this answer)。

    【讨论】:

      【解决方案2】:

      我已经写了一个 small tutorial on my blog 用于使用嵌入式 glassfish 3.1 使用 javax.ejb.embeddable.EJBContainer 对 EJB 进行单元测试。它有一些陷阱,我通过修改默认的嵌入式 glassfish 域并将一些属性放入 createEJBContainer() 调用来解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        相关资源
        最近更新 更多