【发布时间】:2016-01-22 12:10:49
【问题描述】:
我正在使用Spring-boot 和Jpa 创建一个网络应用程序。一切正常。但是在测试期间,我必须手动创建对象实例并为每个测试填充数据库。我想知道是否可以备份嵌入式数据库并在每次测试开始时恢复它,从而释放测试代码中的混乱。
【问题讨论】:
标签: spring-boot h2 database-backups
我正在使用Spring-boot 和Jpa 创建一个网络应用程序。一切正常。但是在测试期间,我必须手动创建对象实例并为每个测试填充数据库。我想知道是否可以备份嵌入式数据库并在每次测试开始时恢复它,从而释放测试代码中的混乱。
【问题讨论】:
标签: spring-boot h2 database-backups
最好(也是最简单的方法)是使用 Spring 嵌入式数据库 + SQL 脚本来预加载您的数据库。 this answer 中描述了一种简单的方法。
一篇很好的文章展示了每个测试的人口(以及整个设置):Setup and preload database for spring integration/functional tests
【讨论】:
Spring Boot 有几种初始化数据库的机制,最简单的一种可以说是via Spring JDBC。您需要做的就是创建一个名为 data-test.sql 的文件(假设您的测试配置文件名为“test”)并通过其中的普通 SQL 插入定义所有数据。
【讨论】: