如何组织JUnit测试的数据环境?

时间:2011-04-06 16:24:07

标签: java junit dbunit

我正在创建一个数据密集型Java EE Web应用程序,它将持久数据保存在关系数据库中。现在我想要一些JUnit测试来验证某些“数据环境”中的应用程序行为。一些对象应该在测试之前创建,并在测试完成时销毁。测试应该能够控制他们的数据设置配置。典型的情况,是吗?现在我的问题是:

  • 使用什么工具? DBUnit看起来相当陈旧,而不是面向JUnit-4。
  • 在何处放置以及如何命名对象创建者?
  • 如何将配置详细信息传递给他们? Java调用params? XML配置?
  • 为方便起见,我不应该使用ExternalResource JUnit规则吗?

我很想知道什么是最佳做法。你是如何解决这个问题的?

1 个答案:

答案 0 :(得分:3)

DBUnit相当陈旧,自2009年以来该项目没有更多创新。主要问题是XML对数据集的大量使用。创建数据集很难但是可行。维护是一场噩梦,有时候太贵了......

如果您使用具有ORM框架的实体,则应尝试直接使用它们来实例化数据库。我建议使用Unitils,这有助于配置测试数据库并提供JPA或Hibernate Session的注入。您可以将此方法与Builder Pattern结合使用,以表达数据的含义并集中配置。