有没有人这样做或试图为先前存在的项目做这件事? 似乎有两种选择可以使用embedded EJB API基本上使用以下类
javax.ejb.embeddable.EJBContainer
期望配置的glassfish v3安装可用(应用程序范围的资源将使这更容易)。
另一种方法是使用嵌入式glassfish jar文件和embedded glassfish API
我正在寻找那些已经或正在执行此操作的人员的反馈,链接到博客等,并使用简单的EJB&测试用例是一打一打。
如果您已经使用任何其他EJB 3.1容器完成此操作,请随时分享。
答案 0 :(得分:4)
这里似乎有两个选项,要么使用嵌入式EJB API(...),要求配置的glassfish v3安装可用。
不,您可以也在项目中使用最小域名。
我正在寻找那些已经或正在执行此操作的人员的反馈,链接到博客等,并使用简单的EJB&测试用例是一打一打。
我在我的宠物项目(Maven下)完成了EJB 3.1和JPA的集成测试,受到Unit Testing EJBs and JPA with Embeddable GlassFish的启发。阅读它绝对值得。
您是否使用任何特定测试框架的原因除了它是您首选的工具之外?
不。
您使用了哪种JPA 2.0实现,是否有特定原因?
我使用了EclipseLink(因为它当时可用)。
如果你使用了玻璃鱼,你使用了上述哪种策略?如果没有,那么你使用的是哪个EJB 3.1容器?
我使用了嵌入式EJB API,我计划在其他Java EE 6容器可用时运行我的代码。
如果您成功完成了这项工作,是否值得付出努力,您是否会再次为另一个现有项目执行此操作?
好吧,我认为集成/功能测试具有价值,并且发现嵌入式EJB API 非常适合。即使我不认为我的样本是一个真实的项目,使用它并不痛苦。
对于更复杂的情况,我会关注maven-embedded-glassfish-plugin(另请参阅this answer)。
答案 1 :(得分:1)
我编写了一个small tutorial on my blog,用于使用嵌入式glassfish 3.1使用javax.ejb.embeddable.EJBContainer
对EJB进行单元测试。它有一些陷阱,我通过修改默认的嵌入式glassfish域并将一些属性调用createEJBContainer()
来解决这个问题。