对于测试EJB(特别是消息驱动的Bean),首选哪种模拟框架,我正在查看MockObjects,easyMock,MockEJB和mockito但是打开所有框架。
之前我没有使用过模拟框架,对低学习曲线/入门指南特别感兴趣。
我应该使用EJB 2来澄清。
答案 0 :(得分:4)
专门为此构建的框架是Arquillian
- http://www.jboss.org/arquillian。
这使您可以通过JUnit测试容器内容。您可以测试单个bean或更大的集合。您可以通过在测试档案中打包其他实现来提供模拟。
使用Java EE 6(JBoss AS 6,Glassfish V3)时,您可以在嵌入式模式下运行容器,这样可以简化操作并节省运行时开销。
虽然EJB2很难测试。如果可能的话,我建议你完全放弃它以支持EJB3.x,但当然这可能不是你的选择。
答案 1 :(得分:2)
如果你正在使用EJB 3.x,那么它是基于接口的,所以你通常的普通模拟框架可以很好地进行单元测试; EJB框架使用代码的事实并不真正相关。
但是,由于它不符合任何通常的软件设计规则,因此EJB 2.x是一个不同的(并且丑陋)鱼的水壶。你最好的选择可能是Cactus这样的框架。答案 2 :(得分:2)
它不是一个模拟框架,但您可能希望查看OpenEJB,它是一个轻量级EJB容器,适用于单元测试中的其他用途。它将节省您必须模拟容器的接口,并且您仍然可以模拟与其他组件的接口。