如何在内存数据库的测试用例中编写?

时间:2018-03-17 14:06:47

标签: java oracle unit-testing testng in-memory-database

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

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

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

因此,在编写测试用例时,我该如何检查?

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

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

提前致谢

1 个答案:

答案 0 :(得分:1)

您应该使用另一个使用H2内存数据库的hibernate配置来初始化您的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内存数据库的连接:

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

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