如何有效地测试SQL / JPQL / HQL?

时间:2011-05-07 23:01:33

标签: java unit-testing tdd

通常会说单位测试到dont test the database as that is an integration testsee point 4)。

但是,SQL / JPQL / HQL封装了data store specific逻辑,该逻辑通常采用字符串格式来表示如何访问数据。这种自由格式的字符串数据访问命令很容易出错,因此需要进行测试。

我如何有效地测试这种逻辑?

2 个答案:

答案 0 :(得分:2)

对SQL(或类似框架)查询运行单元测试的最接近的方法是在内存中设置SQLite数据库,然后针对它运行。

虽然技术上仍然是集成测试,但它与单元测试一样快几乎

如果您这样做,请注意注意SQLite与真实数据库之间的轻微差异,并尝试使您的查询与这两者兼容。

希望这有帮助,
阿萨弗。

答案 1 :(得分:1)

这不是一个单元测试,但是使用像Nunit这样的单元测试框架测试你的sql没什么。但重要的是你要将它与真正的单元测试分开。真正的单元测试很快,不与外部通信......也不会尝试通过更新,删除和插入来改变它。