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

时间:2010-11-24 10:44:34

标签: java sql database unit-testing junit

我有一个类DBHandler,它接受​​一个查询,通过SQL服务器运行它,检查错误并返回结果。我怎样才能对这门课进行单元测试?

修改:我会尝试更精确: DBHandler负责将查询传递给服务器。为了测试它实际上是这样,抛出正确的异常等,我想将它连接到我将填充的模拟数据库。我的问题是 - 怎么做?如何创建处理调用的模拟“服务器”?

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

您将要么使用您创建的内存测试数据库并在设置时填充,要么使所有测试都是事务性的,这样它们就不会改变您的测试数据库。

您必须担心数据的存在。

如果你使用Spring,他们支持事务单元测试。

目前尚不清楚你在问什么。您已经了解JUnit。你认为你错过了什么?

答案 3 :(得分:0)

模拟数据库的快速解决方案是这样的:

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

  • 填充测试数据。

  • 在哪里使用条件代码 连接到您的真实数据库,到 连接到测试服务器。一个 您的申请中的财产可以 控制这个。

  • 测试应用程序