5

有没有人这样做或试图为一个预先存在的项目这样做?
这里似乎有两个选择,或者使用嵌入式 EJB API,基本上是以下类

javax.ejb.embeddable.EJBContainer

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

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

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

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

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

2 回答 2

4

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

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

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

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

您是否出于首选工具以外的原因使用任何特定的测试框架?

没有。

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

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

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

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

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

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

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

于 2010-05-05T22:57:18.287 回答
1

在我的博客上写了一个小教程,使用嵌入式 glassfish 3.1 对 EJB 进行单元测试,使用javax.ejb.embeddable.EJBContainer. 它有一些陷阱,我通过修改默认的嵌入式 glassfish 域并createEJBContainer()调用一些属性来解决这些问题。

于 2011-06-05T11:48:35.187 回答