什么是用于 junit 测试的内存数据库?

What is a good in memory database for junit test?

我们正在进行junit 测试,希望隔离数据库依赖。所以我们在考虑用内存数据库来代替mysql数据库。我们可以使用一些内存数据库,如 H2 数据库、HSQL。 我的问题是: 1、H2或者HSQL能否完美替代mysql没有任何隐患?因为 sql 语法可能存在一些差异。 2. 我想知道在单元测试时是否有更好的选择来替换mysql 数据库?

HSQLDB 等数据库的行为与 MySQL 并不完全相同。使用 HSQLDB 进行测试的优点是标记代码中的一些意外错误,这些错误可能会在 MySQL 下通过。例如,某些无效聚合查询在 MySQL 下有效,但在 HSQLDB 下无效。