一尘不染

您如何对Java EE代码进行单元测试?

java

我想问一下您首选的Java EE代码测试方法?

我发现只有三个项目,这些项目试图帮助在Java EE环境中编写单元测试:

所以我想知道

  • 是否有任何框架可以帮助编写(j)Java EE代码的单元测试?
  • 您是否使用jboss或glassfish v3等嵌入式Java EE服务器?
  • 您会自己进行样机注入吗?

非常感谢…


阅读 179

收藏
2020-12-03

共1个答案

一尘不染

如果用 单元测试的
意思是…单元测试(单独测试一个单元),那么您实际上不需要任何特定的框架,因为EJB3.0仅仅是带注释的POJO,因此可以相对容易地进行测试而无需任何特殊的固定装置。

现在,如果您要说的是其他东西(例如 集成测试功能测试) ,那么 可以
,工具可以帮助并简化事情(但是您应该真正开始使用正确的术语:)我将假设这就是您的想法。

首先,JUnitEE似乎已经过时且过时了,我什至不确定它对EJB3.x是否有用。其次,我不是被打动的Java
EE
5的支持
仙人掌和无需部署仙人掌测试是痛苦的(我认为仙人掌是很好的J2EE
1.4,但现在已经过时了一下)。因此,这给了我们Ejb3Unit一个最好的选择,特别是如果您想用尽
容器 测试即没有真正部署应用程序(快得多)的话。

如果您想 在容器 测试中运行,那么您确实可以使用嵌入式容器,并且我当前的偏好设置是使用GlassFish v3,甚至对于Java EE
5(我可能是错的,但我对最新JBoss的启动时间感到非常失望。发布,因此没有引起我的太多关注)。请参阅《GlassFish Embedded
Reloaded》一文,这是一个放在口袋里的应用服务器,以
获取示例代码(可以在测试中使用),或将maven插件用于v3嵌入式glassfish(如果正在使用maven)。

另一个选择是使用Cargo打包和部署您的应用程序,然后对已部署的应用程序运行一些测试(例如,使用Selenium或BDD工具)。如果您要使用不提供任何嵌入式API的容器运行端到端测试,这可能会很有用。

因此,为回答您的最后一个问题,我确实会使用可用的工具(也许是它们的组合)来进行非单元测试并且不会自己模拟/注入内容的测试,除非它们不能满足我的某些需求。现在不考虑。

2020-12-03