繁体   English   中英

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

[英]How can I unit-test my database content?

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

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

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

是否有某种框架可以根据我们的数据测试数据库? 与JUnit的断言一样,类似于预期和实际的东西。

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

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

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

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

这似乎是DBUnit的一个用例

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

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

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

更具体地回答您的要点:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM