如何使用内存数据库编写测试用例?

How to write in test case with in-memory-database?

我使用 Oracle 作为我的数据库,SpringBoot 作为我的框架。

我不知道如何编写测试用例来检查数据库查询? 我听说可以通过内存数据库实现。但是找不到合适的例子。

假设我在我的代码中编写了一个 SQL 查询 SELECT * FROM tableName 并且它返回了一个 ResultSet 对象。

所以在编写测试用例时我该如何检查?

每次我不想进入数据库并获取查询。

我知道这是可能的,但我的问题是如何用我将存储在任何文件中的虚拟结果替换我的查询结果。

提前致谢

您应该使用另一个使用 H2 in-memory 数据库的休眠配置来初始化您的 Hibernate SessionFactory,例如 test-hibenate.properties:

hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.connection.url=jdbc:h2:mem:orm
javax.persistence.schema-generation.database.action=drop-and-create

然后在您的测试中,您可以以常规方式使用您的 DAO。

如果你使用普通 JDBC,你可以通过这种方式创建到 H2 in-memory 数据库的连接:

Connection connection = DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "", "");

并且您将需要 H2 数据库依赖项: https://mvnrepository.com/artifact/com.h2database/h2