单元测试EJB

Att*_*lah 6 java tdd junit ejb java-ee

我正在寻找一种方法将TDD应用于Session Bean.

谁能提供有关如何对它们进行单元测试的建议和链接?

如何使用JUnit这样做?

PS:我是Test Driven Development和Session Beans的新手.

我正在使用EJB v2.

Pas*_*ent 7

我假设你在谈论EJB2.x会话Bean.对于这些动物,我喜欢做的是:

  • 使用会话Bean作为包装,将逻辑委托给POJO,您可以在容器外轻松测试.外部容器测试更好,更快,更容易等,但不包括部署描述符验证之类的东西- 和/或 -
  • 使用类似Cactus的东西进行容器内测试(查看Howto EJB文档)- 和/或 -
  • 使用Cargo构建和部署EJB模块以进行集成测试.


Bri*_*new 5

您没有说明您正在使用哪个版本的EJB.如果是EJB v3,请查看Ejb3Unit.来自网站:

Ejb3Unit是一个JUnit扩展,可以为所有符合EJB 3.0的Java EE项目执行自动化的独立junit测试.容器测试方法的出现会导致构建测试周期缩短,因为不再需要容器部署.

但是我建议将功能与EJB特定功能分开.这将允许您测试容器外的复杂功能,而无需使用上述框架.您的大多数测试都将测试POJO(普通的旧Java对象),而相对较少的测试将专注于您的持久性框架测试.

编辑:所以如果你使用EJB v2,那么显然忽略了第一点.然而,第二点仍然有效.