我该如何测试EJB 3.0?

时间:2013-12-18 17:51:59

标签: unit-testing java-ee ejb integration-testing

我正在使用EJB 3.0,Oracle WebLogic。

在以下问题中需要帮助:

如何测试EJB(3.0)?我的意思是单元测试和/或集成测试?我可以使用某种嵌入式EJB容器或为它创建一个模拟来编写单元测试吗?也许有一些特殊的测试框架或aproaches? EJB对我来说并不新鲜,但我从未为它们编写测试。 任何信息对我都有用。

感谢。

3 个答案:

答案 0 :(得分:6)

一种选择是使用嵌入式容器。在每次测试执行时启动,你必须通过jndi查找来获取bean,自己管理容器的配置以及所有无聊,非生产性的东西。

另一方面,有像Arquillian这样的框架可以帮到你。它在测试中支持像@EJB这样的注释,并且DI管理容器....阅读他们网站上的指南,值得。

根据我的经验,模拟对于复杂的ejb测试来说是一个不好的解决方案,即使它可以用于测试一些非容器依赖的功能。

我的建议是用arquillian进行。

答案 1 :(得分:2)

我会尝试尽可能地使用普通的junit和mockito来测试小的代码单元,并仅使用嵌入式容器进行集成测试,因为这些测试运行的时间比单纯的单元测试要长得多。对于运行单元测试的开发人员来说,测试永远不会让人讨厌。

答案 2 :(得分:1)

在junit测试中使用的嵌入式EJB容器是集成测试服务的好主意。的EJB。

使用open-ejb(或任何其他嵌入式容器,如glassfish等)可以帮助您使用junit作为框架简单地编写小测试。使用内存数据库甚至可以很好地集成JPA。

如果涉及到嘲笑,让我们说对于远程服务,你仍然可以在里面使用mockito。

找到一些记录在案的&这里可运行的示例:https://tomee.apache.org/examples-trunk/