代码之家  ›  专栏  ›  技术社区  ›  Amir Rachum

如何对SQL查询进行单元测试?

  •  10
  • Amir Rachum  · 技术社区  · 14 年前

    我有一节课 DBHandler 它接受一个查询,在SQL server中运行它,检查错误并返回结果。我怎样才能对这门课进行单元测试?

    编辑 :我会更精确地说: 数据库处理程序 负责将查询传递到服务器。为了测试它是否真的这样做,抛出正确的异常等等,我想将它连接到一个mock DB,我将填充它。我的问题是-怎么做?如何创建处理调用的模拟“服务器”?

    4 回复  |  直到 14 年前
        1
  •  7
  •   Adeel Ansari    9 年前

    只需传递一个SQL查询,并将返回的结果与预期的结果进行比较。很简单。JUnit是一个单元测试框架,您可以利用它。

    对于复杂的数据库单元测试,请查看 DBUnit .

        2
  •  4
  •   Jackson Pope    14 年前

    我将使用依赖注入来传递数据库连接或类似的东西,这样整个事情就可以在测试中模拟出来。然后可以编写模拟查询抛出异常、返回各种错误或有效结果的测试。你的测试只是检查 DBHandler 表现正确。

        3
  •  0
  •   duffymo    14 年前

    您需要使用在设置时创建和填充的内存中测试数据库,或者使所有测试都具有事务性,这样它们就不会更改您的测试数据库。

    你得担心数据的存在。

    如果您使用的是Spring,它们支持事务性单元测试。

    不清楚你在问什么。你已经知道JUnit的事了。你觉得你错过了什么?

        4
  •  0
  •   fredt    14 年前

    模拟数据库的快速解决方案如下:

    • 设置HSQLDB测试服务器 独立于你的应用程序。

    • 用测试数据填充。

    • 使用条件代码 连接到真实的数据库 连接到测试服务器。一个 应用程序中的属性可以 控制这个。

    • 测试应用程序