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

Java 如何对数据库内容进行单元测试?,java,junit,Java,Junit,我们有一个案例,我们正在测试一个swing应用程序。我们有一个QA人员,他到目前为止一直在对应用程序进行手动测试。现在我们已经意识到,手动测试需要很长时间才能重复,因此,我们需要投入时间使用Fest对UI进行自动化测试 硬币的另一面是测试数据库数据。这意味着在GUI中完成一些步骤后,我们需要检查数据库中是否存在我们期望的数据 由于是QA人员为我们编写这些单元测试,因此我们希望通过提供某种框架使其尽可能简单 是否有某种框架可以根据我们现有的数据测试数据库?类似于JUnit的断言的预期和实际 基本上

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

硬币的另一面是测试数据库数据。这意味着在GUI中完成一些步骤后,我们需要检查数据库中是否存在我们期望的数据

由于是QA人员为我们编写这些单元测试,因此我们希望通过提供某种框架使其尽可能简单

是否有某种框架可以根据我们现有的数据测试数据库?类似于JUnit的断言的预期和实际

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

  • “预期”数据应易于提供,如YAML、JSON、Excel工作表、CSV等。XML和编写代码以在java中创建bean非常耗时
  • 我们希望创建预期的数据,以便仅根据数据库检查预期数据中存在的列
  • 我们不介意扩展这个框架,让一个不太懂Java的人可以轻松地使用它

  • 这似乎是

    的一个用例,似乎是您的一个解决方案


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

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

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

    要更具体地回答您的特征点:

  • Scala非常适合XML。不需要解析器代码,样板代码减少到最低限度。自己编写XML数据库比较器,并通过DSL提供对它的访问,然后QA只需编写一个XML片段来检查数据库中的数据

  • 同上。您自己提供比较器,因此确保这一点很简单

  • Scala可以很好地与Java一起工作,因为它可以编译成Java字节码。您可以重用所有现有的Java代码来创建DSL,甚至可以让测试代码访问它


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

    < P>你也可以考虑FITNESE作为一个易于使用的工具。尽管您可能需要在幕后花费更多的时间来创建测试夹具,但对于测试人员来说,这将是一个易于使用的工具。请参见

    注意:您不需要使用HTML

    标记来设置问题的格式,一些空行就足够了。谢谢。。我们能够准备好xml数据集,并将其与我们的表数据进行比较。。现在看来,我们的身体状况有点不太好。。我们将与DBUnit合作。。Fitnesse看起来很有趣谢谢你,Frank。。Scala看起来很有趣,但由于我们现在不习惯学习另一种语言(时间不够),我认为我们将使用DBUnit。。