EJB 3.1 Embedded API - 单元测试EJB + JPA实体

Jus*_*tin 5 java unit-testing jpa jpa-2.0 ejb-3.1

有没有人这样做或试图为预先存在的项目做这个?
看来这里有两个选项,要么使用嵌入式EJB API,要么基本上使用以下类

javax.ejb.embeddable.EJBContainer
Run Code Online (Sandbox Code Playgroud)

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

另一种方法是使用嵌入式glassfish jar文件和嵌入式glassfish API

我正在寻找那些已经或正在执行此操作的人的反馈,使用简单的EJB和测试用例的博客链接等等.

如果您已经使用任何其他EJB 3.1容器完成此操作,请随意共享.

  1. 您是否使用任何特定测试框架的原因除了它是您首选的工具之外?
  2. 您使用了哪种JPA 2.0实现,并且有特殊原因吗?
  3. 如果你使用了玻璃鱼,你使用了上述哪种策略?如果没有,那么你使用的是哪个EJB 3.1容器?
  4. 如果你成功地做到了这一点,是否值得努力,你会再次为另一个现有项目做这件事吗?

Pas*_*ent 4

这里似乎有两个选项可供选择,要么使用嵌入式 EJB API (...),该 API 期望配置的 glassfish v3 安装可用。

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

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

受到使用 Embeddable GlassFish 的单元测试EJB 和 JPA 的启发,我在我的宠物项目(在 Maven 下)上完成了EJB 3.1 和 JPA 的集成测试。阅读它绝对是值得的。

除了您首选的工具之外,您是否出于其他原因使用任何特定的测试框架?

没有。

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

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

如果您使用 glassfish,您会使用上述哪种策略?如果没有,那么您使用了哪个 EJB 3.1 容器?

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

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

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

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