如何对我的数据库内容进行单元测试?

时间:2011-09-20 09:49:53

标签: java junit

我们有一个案例,我们正在测试摇摆应用程序。我们有一个QA人员,他到目前为止正在对应用程序进行手动测试。现在我们已经意识到手动测试需要花费很长时间才能重复,因此需要花时间使用Fest对我们的UI进行自动测试。

硬币的另一面是测试数据库数据。在GUI中执行一些步骤后,我们需要检查数据库中是否存在我们期望的数据。

由于这是一个为我们编写这些单元测试的QA人员,我们希望通过提供某种框架来尽可能简化它。

是否有某种框架可以针对我们拥有的数据测试数据库?与JUnit的断言一样,与预期和实际相似。

基本上我们正在寻找具有以下功能的框架:

  1. “预期”数据应该像YAML,JSON,Excel Sheet,CSV方式一样容易提供。 XML和编写用于在Java中创建bean的代码非常耗时。
  2. 我们希望创建预期数据,以便只应根据数据库检查预期数据中的列。
  3. 我们不介意扩展框架,以便让不熟悉Java的人轻松工作....

4 个答案:

答案 0 :(得分:3)

Dbunit看起来像是一个解决方案。

DbUnit还可以帮助您验证数据库数据是否与预期的值集匹配。

答案 1 :(得分:2)

这似乎是DBUnit

的用例

答案 2 :(得分:1)

您可能还想将FitNesse视为一种易于使用的工具。虽然您可能需要在幕后投入更多时间来创建测试夹具,但它将是一个易于使用的测试工具。见http://fitnesse.org/

答案 3 :(得分:0)

我们最近遇到了类似的情况,并最终选择了我们自己的框架。我们基于优秀的scala specs library(它也适用于JUnit的跑步者)。您的案例的主要区别可能是,我们的QA人员有一点编程背景,我们在同一框架内编写了更多涉及的测试案例。

但是,为了涵盖您的主要功能,中心思想是定义用于测试数据的特定于域的语言。这使得它很容易用于QA(在学习如何使用该语言的初始开销之后,可用的语言等)。

更具体地回答您的要点:

  1. Scala在XML方面表现非常出色。无需解析器代码,样板代码减少到最少。自己编写XML-Database-Comparator并通过DSL提供对它的访问,然后QA可以简单地编写XML片段以在数据库中进行检查。

  2. 与上述相同。您自己提供比较器,因此可以直接确保比较。

  3. Scala适用于Java,因为它编译为Java字节码。您可以重用所有现有的Java代码来创建DSL,甚至让测试代码访问它。

  4. 我们的主要优点是我们可以重用Hibernate数据模型来对数据模型执行更多涉及的测试,我们仍然可以像往常一样访问所有Java代码,即使对于非程序员来说,DSL也很容易阅读。 (后者派上用场,当你试图解释一些经理类型的东西实际上在做什么。)