java - EJB测试策略?

标签 java jakarta-ee glassfish ejb java-ee-6

我正在开发 Java EE 6 应用程序。刚开始时,我通过手动实例化 EJB 为我的 EJB 类编写测试,然后手动添加通常由依赖注入(inject)提供的成员。随着应用程序变得越来越复杂,我发现这种方法并不能解决问题。所以我希望能够在测试框架中启动我自己的 EJB 容器,以便它可以管理我的 bean。解决这个问题的最佳方法是什么?我听说过 javax.ejb.embeddable.EJBContainer,还有其他选择吗?

(我正在使用 Glassfish 3,并使用 Maven 进行构建,如果这有什么不同的话。)

最佳答案

你到底在测试什么?逻辑?配置?您需要直接测试 EJB 类吗?是否足以让您的测试作为针对正在运行的容器的 EJB 客户端? (请记住,没有规则说自动化单元测试不需要正在运行的被测系统。)

如果您需要测试的是业务逻辑,请将该代码移至 POJO 中并正常测试;您不需要再测试在容器中运行的 POJO,因为容器不应影响业务逻辑。

在相关情况下,我从未直接对 servlet 类或 Struts Controller 类进行 JUnit 测试。我绝对测试了它们所依赖的 POJO,并且我测试了最终应用程序(在 servlet 容器中运行,使用 HtmlUnit 进行了测试),假设如果最终应用程序工作正常,那么管道也工作。

关于java - EJB测试策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721530/

相关文章:

启动 Spring WebFlow2 过渡的 Javascript 代码

通过 wsimport 可执行 Web 服务客户端时出现 java 异常

java - 嵌套的 JSONObject

java - 带有继承的双向一对多不起作用(jpa 与 hibernate 3.5.4)

java - 没有 UI 的后台进程 - android

java - 将消息安全性从 Glassfish 迁移到 JBoss 7

Grails 部署到 Glassfish 和 slf4j

java - JEE 无法运行 JAX-RS WebService 框架应用程序

java - war 部署到 webapp 但创建的目录没有内容

eclipse - Persistence.xml 放在 eclipse 项目的什么位置