有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个类DBHandler,它接受一个查询,通过SQL server运行它,检查错误并返回结果。如何对这个类进行单元测试

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


共 (4) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

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

    • 填充测试数据

    • 在需要时使用条件代码 连接到您的真实数据库,以 连接到测试服务器。A. 应用程序中的属性可以 控制这个

    • 测试应用程序

  3. # 3 楼答案

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

    您将不得不担心数据的存在

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

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

  4. # 4 楼答案

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

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