首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EJB的junit测试

EJB的junit测试
EN

Stack Overflow用户
提问于 2013-10-08 07:20:37
回答 3查看 5.1K关注 0票数 1

我正计划为我的一些EJB编写junit测试用例。我做了一点点谷歌和大多数链接指向阿基利安http://arquillian.org,但它似乎是缓慢的,它需要一个运行容器。我可以使用arquillian来测试jboss (org.jboss.ejb3.annotation.Service)吗?举个例子会有很大帮助吗?

经过一点调查,我发现了JBoss微容器http://docs.jboss.org/jbossmc/docs/2.0.x/userGuide/index.html。这个微容器需要任何jboss的运行实例吗?我可以在这个微容器中部署所有类型的EJB+ jboss服务bean吗?

此外,jboss微容器与JBossEmbeddedAS https://community.jboss.org/wiki/JBossEmbeddedASQuickstartAndRunnableExample的区别是什么?

提前感谢

迪潘卡伊

EN

回答 3

Stack Overflow用户

发布于 2013-10-08 11:06:35

单元测试的目的是只测试单个代码单元,例如bean类。

因此,单元测试不需要任何基础结构,并且应该模拟对其他单元的所有必要引用。

我知道,在现实生活中,这通常是很难实现的,但是如果您想拥有任何容器服务,例如注入机制,那么您的测试就超出了单元测试。

Arquillian提供了容器适配器,这样您的测试用例就可以在嵌入式环境中运行,甚至可以在真正的容器中运行。它的优点之一是能够在实际的应用程序服务器中运行测试,而不是在一些模拟环境中运行,并且能够在多个环境中运行相同的测试,例如在不同的应用服务器上。

因此,在您的示例中,我建议为所有可测试的单元编写单元用例(您将看到,如果您在开发该单元的同时进行测试,您将注意使它具有良好的可测试性),并对每个外部引用使用模拟框架(例如,Mockito),然后在有集成测试的情况下使用Arquillian。

票数 3
EN

Stack Overflow用户

发布于 2013-10-08 21:52:34

我们使用EJB3Unit取得了很好的效果。它根本不需要一个容器。它注入@DataSource、@PersistenceContext、@Resource和@EJB

它也有局限性,因为它不是一个容器,比如它不创建事务,也不运行拦截器。但是您将使用集成测试测试@Interceptor和@Transaction,不是吗?

票数 2
EN

Stack Overflow用户

发布于 2013-10-31 23:20:06

最近,我公开了我自己开发的无容器EJB单元测试框架,参见测试乐趣-JEE中的示例。

testfun支持EJB和莫基托模拟的注入,以及使用JPA和JDBC。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19241514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档