是否有一种在容器外部对EJB 3.x中的BMT进行单元测试的好方法。我相信在我们编码时正确测试交易是有意义的。恕我直言,从第一个可能的阶段测试我们编码的内容非常重要。所以,如果有一个简单的好方法,并且不需要太多时间来执行,测试BMT,那么它将非常受欢迎。
目前,我正在使用内存数据库在EJB 容器外中测试我的JPAQL。我使用unitils-DBUnit在我的数据库中注入测试数据。因此,在设置试验台时,在需要测试BMT的特殊情况下,我该怎么办?
P.S:我已经看过像Bitronix这样的工具了,但我真的不确定它是否会对我的情况有所帮助。我需要一些真正性能密集且轻巧的工具,这样就不会让开发人员感到沮丧 - 这就是单元测试。请给我你的意见。据你说,这样的工具对我的目的是好的。如果是,您是否还有我可以参考的任何示例?
非常感谢
答案 0 :(得分:0)
你真的需要测试“容器外”,还是“在服务器之外”?如果是前者,您是否看过EJB 3.1中的embeddable EJB container支持?可嵌入的EJB容器在独立的Java进程中运行(适用于单元测试),并且EJB 3.1规范的每个表27(第21.1节)中的可嵌入EJB容器都需要BMT。
答案 1 :(得分:0)
对于单元测试事务,应该有一个完整的事务管理器,它是独立的,并且执行时间非常短。它不应该强制部署任何豆类或罐子。
Bitronix工作正常,满足了我的目的。执行测试只需不到一秒钟。因此,我不再需要模拟我的事务,并且我可以确保事务正常工作,因为我希望它们在我的代码进入Integration测试阶段之前工作。我也看到了关于Atomikos的积极回应,但我从未尝试过。也许我可以在评估Atomikos时更新这个帖子。