【问题标题】:Best way to clone existing DB for Junit tests?为 Junit 测试克隆现有数据库的最佳方法?
【发布时间】:2025-12-09 05:35:01
【问题描述】:

我必须以某种方式从现有数据库中克隆表才能运行单元测试。理想的解决方案是——一个 Maven 插件或 Spring bean——将数据库表克隆到一个 HSQL 数据库中,然后我可以用我的 JUnit 测试来命中它。

最直接的方法是什么?

【问题讨论】:

标签: java sql junit hsqldb


【解决方案1】:

下载 DBUnit。 http://dbunit.sourceforge.net/

将数据集从现有数据库导出到 XML。

在您的套件中,将数据集导入 HSQL。

如果您打算对行为与其持久层紧密耦合的应用程序(例如任何用 ORM 编写的东西)进行单元测试,那么您将需要了解 DBUnit。

【讨论】:

  • 我已经让 DBUnit 工作了(有点),但我们数据库中的所有内容都以 CDATA 数据类型返回 - 不太适合测试。我很抱歉超出了原始问题的范围,但是您知道如何解决这个问题吗?我正在从 AS400/DB2 数据库中读取表格。 (驱动程序 com.ibm.as400.access.AS400JDBCDriver)。