用于非 spring 应用程序的 Junit 测试的嵌入式数据库

Embedded Database for Junit Tests for non-spring application

我正在寻找可以在 JUnit 4.12 测试中使用的嵌入式数据库。由于我们代码库和时间线的当前性质,我们不可能模拟数据库调用。我们只关心 Mysql 数据库。所以我正在寻找某种嵌入式数据库,我可以在每次测试 运行 之前对其进行初始化,然后在测试后将其清除。有些类似于 wiremock 对 http 服务器的作用。

我已经完成了 this & 似乎可以通过 H2 嵌入式数据库实现它。我在网上找到的大多数 link 都在讨论如何将它与 Spring 一起使用。

谁能告诉我

  1. 是否可以使用 H2 作为嵌入式数据库实现相同的 Junit 测试非 spring 应用程序?如果是,有人可以让我知道如何执行此操作或指出一些 link 解释此用例的地方吗?
  2. 除了 H2 之外,还有其他一些工具可以用来实现我的目标吗?

我认为您可以使用 H2,但我更喜欢为此目的使用 hsqldb。我需要一些嵌入式数据库,它可以模仿 sql 中的一些特定于 oracle 的功能。据我所知,您可以使用任何嵌入式 java 数据库进行单元测试。