3

我正在考虑为我的 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 提供的更多内容:

这是一个关于 Unitils 的精彩演示,它说服我开始使用 Unitils: http ://www.javapolis.com/confluence/download/attachments/32918/C_14_09_04.pdf

我暂时把这个问题悬而未决,也许有人会想出一些其他的想法......

4

2 回答 2

3

我们在项目中使用 Unitils 和 Spring 的测试框架。对于 unitils,我们遇到的一件事是拥有多个 PersistenceUnit。Unitils 不支持它。春天当然可以。

我们在这里发布的另一个问题是:使用 unitils/dbMaintain 维护数据库,如何排除正在运行的脚本?

基本上,unitils 并不具备每个底层框架(例如 DBMaintain)的所有最新功能,因为 unitils 在幕后使用了其他框架的“旧”版本。

也就是说,Unitils 确实有一些非常方便的方法,比如DatabaseUnitils中提供的一些方法。我们特别喜欢updateSequences()

因此,为了获得最大的灵活性和/或如果您预计会有相当复杂的代码结构,我会尽可能坚持使用 Spring 的测试框架。

在许多其他情况下,unitils 是一个非常方便的工具。

还有一点 ps .. 如果可能的话,我建议偏爱单元测试和模拟框架,如 Mockito 与集成测试。我一直是一个“集成测试”重度测试人员,在最后一个项目中,它变成了一个维护挑战。

于 2012-02-21T19:41:26.827 回答
1

Unitils is a very good framework as you have noted.

Pros:

  1. Unitils now uses Spring jars.
  2. Unitils inject module works great in my view, though you can achieve something like that in spring too.

Cons: As you have said, I believe it lacks proper support in the Unitils forum. I can see many threads not answered for a long time. However stackoverflow has good support for it :-) except if you need additional features or bug fixes.

Personally, I find Unitils good for my testing.

于 2012-01-09T17:20:46.487 回答