通常会说单位测试到dont test the database as that is an integration test
(see point 4)。
但是,SQL / JPQL / HQL封装了data store specific
逻辑,该逻辑通常采用字符串格式来表示如何访问数据。这种自由格式的字符串数据访问命令很容易出错,因此需要进行测试。
我如何有效地测试这种逻辑?
答案 0 :(得分:2)
对SQL(或类似框架)查询运行单元测试的最接近的方法是在内存中设置SQLite数据库,然后针对它运行。
虽然技术上仍然是集成测试,但它与单元测试一样快几乎。
如果您这样做,请注意注意SQLite与真实数据库之间的轻微差异,并尝试使您的查询与这两者兼容。
希望这有帮助,
阿萨弗。
答案 1 :(得分:1)
这不是一个单元测试,但是使用像Nunit这样的单元测试框架测试你的sql没什么。但重要的是你要将它与真正的单元测试分开。真正的单元测试很快,不与外部通信......也不会尝试通过更新,删除和插入来改变它。