我正在考虑为我的 spring+hibernate Web 应用程序使用哪个测试框架。最初我发现并且对 Unitils 很感兴趣,但后来我看到了标准的 Spring TestContext 框架并开始产生一些疑问。我对这个主题很陌生,但到目前为止我的理解如下:
单位优点:
- 混合了各种其他测试框架,例如 EasyMock 或 DbUnit
- 构建在框架之上,提供一些额外的价值,即休眠映射测试或反射测试实用程序
Spring TestContext 框架的优点:
- 允许在测试时使用标准的 Spring 注解
- 可能拥有更大的用户群和更好的支持(这是我的假设,因为 Unitils 似乎基本上是由两个人创建的)
- 还内置了一些 Unitils 功能(例如反射测试实用程序)
- 如果我需要任何 Unitils 的“更大”功能,例如 DbUnit 或 EasyMock,我可以直接从源代码获取常规 DbUnit 或 EasyMock - 这使我可以始终拥有最新版本的 DbUnit/EasyMock,而无需等待 Unitils 发布他们的使用当前 DbUnit/EasyMock 的新版本
所以现在我更倾向于使用 Spring TestContext Framework。有没有人对这些框架有更多经验并且可以帮助我朝着正确的方向倾斜?除了所有这些框架的集成之外,Unitils 本身实际上提供了什么?
[编辑] 刚刚发现了 Unitils 提供的更多内容:
- 对 DbUnit 的一些改进,例如 @DataSet 注释(在 Spring TestContext Framework 中,如果您想将其与 DbUnit 一起使用,您必须自己编写更多代码,如下所述:http: //blog.zenika.com/index .php?post/2010/02/04/Testing-SQL-queries-with-Spring-and-DbUnit%2C-part-1 )
- 在测试中禁用数据库约束的能力
这是一个关于 Unitils 的精彩演示,它说服我开始使用 Unitils: http ://www.javapolis.com/confluence/download/attachments/32918/C_14_09_04.pdf
我暂时把这个问题悬而未决,也许有人会想出一些其他的想法......