EJB测试策略?
我正在研究Java EE 6应用程序。 当我开始时,我正在为EJB类编写测试,方法是手动实例化EJB,然后手动添加通常由依赖注入提供的成员。 随着应用程序变得更加复杂,我发现这种方法并没有削减它。 所以我希望能够在测试框架中启动自己的EJB容器,以便它可以管理我的bean。 什么是最好的方法来解决这个问题? 我听说过javax.ejb.embeddable.EJBContainer
,还有其他的选择吗?
(我使用的是Glassfish 3,如果这有什么区别的话,可以和Maven一起构建。)
你究竟在测试什么? 逻辑? 组态? 你需要直接测试EJB类吗? 您的测试对于正在运行的容器的EJB客户端行为足够了吗? (请记住,没有规定说自动化单元测试不需要正在运行的系统测试。)
如果您需要测试业务逻辑,请将该代码移入POJO并正常测试; 您不需要再测试在容器中运行的POJO,因为容器不应该影响业务逻辑。
在相关情况下,我从来没有直接对JUnit测试过一个servlet类或一个Struts控制器类。 我绝对测试那些依赖的POJO,并测试最终应用程序(运行在一个使用HtmlUnit测试的servlet容器中),假设如果最终应用程序有效,那么管道工程也可以工作。
我听说过javax.ejb.embeddable.EJBContainer
,还有其他的选择吗?
EJBContainer
API是一个选项。 另一个是使用Arquillian(和SchrinkWrap)。
更多链接:
我不完全确定这是否有助于你的情况,但看看烟囱。 我个人不在EE空间中工作(Servlet规范之外),但我确实在某一时刻看到了关于此的演示文稿,并且看起来可以满足您的需求。
链接地址: http://www.djcxy.com/p/48107.html