首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EJB测试策略?

EJB测试策略?
EN

Stack Overflow用户
提问于 2010-09-16 04:26:18
回答 4查看 2.1K关注 0票数 7

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-16 04:55:00

你到底在测试什么?逻辑?配置?您需要直接测试EJB类吗?对于您的测试来说,在运行的容器上充当EJB客户端是否足够?(请记住,没有规则规定自动化单元测试不能要求正在运行的被测系统。)

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

在相关的情况下,我从未直接测试过servlet类或Struts控制器类。我肯定会测试这些应用程序所依赖的POJO,并测试最终应用程序(在servlet容器中运行,使用HtmlUnit测试),假设如果最终应用程序工作,那么管道也会工作。

票数 2
EN

Stack Overflow用户

发布于 2010-09-16 07:34:54

我听说过javax.ejb.embeddable.EJBContainer,还有别的选择吗?

EJBContainer应用编程接口是一种选择。另一种方法是使用Arquillian (和SchrinkWrap)。

更多链接:

  • Real Java EE Testing with Arquillian and ShrinkWrap (幻灯片+ audio)
  • Test drive with Arquillian and CDI (Part 2)
  • Arquillian in Action; New Features Coming Soon
票数 2
EN

Stack Overflow用户

发布于 2010-09-16 04:32:05

我不完全确定这是否对你的情况有帮助,但看看Smokestack。我个人并不从事EE领域的工作(在Servlet规范之外),但我确实看过一个关于这方面的演示,看起来它可以做您需要的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3721530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档