我想问一下您首选的Java EE代码测试方法?
我发现只有三个项目,这些项目试图帮助在Java EE环境中编写单元测试:
所以我想知道
非常感谢…
如果用 单元测试的 意思是…单元测试(单独测试一个单元),那么您实际上不需要任何特定的框架,因为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的容器运行端到端测试,这可能会很有用。
因此,为回答您的最后一个问题,我确实会使用可用的工具(也许是它们的组合)来进行非单元测试并且不会自己模拟/注入内容的测试,除非它们不能满足我的某些需求。现在不考虑。