Spring boot 在不影响主要应用程序数据的情况下,维护集成测试的最佳约定是什么?
我正在创建一个带有集成测试用例的spring引导应用程序,这些测试用例执行持久性和随机生成记录的删除。尝试确保测试数据不会干扰应用程序使用的实际数据。我尝试了两种方法来管理此问题:Spring boot 在不影响主要应用程序数据的情况下,维护集成测试的最佳约定是什么?,spring-boot,spring-data-jpa,integration-testing,Spring Boot,Spring Data Jpa,Integration Testing,我正在创建一个带有集成测试用例的spring引导应用程序,这些测试用例执行持久性和随机生成记录的删除。尝试确保测试数据不会干扰应用程序使用的实际数据。我尝试了两种方法来管理此问题: 在测试目录下创建一个单独的属性文件,即src>test>resources,它指向一个单独的数据库(这个数据库有相同的表,但这里只存储测试数据)。存储在这里的属性是:spring.datasource.url=jdbc:mysql://localhost:3306/testDB src>main>resources中
spring.datasource.url=jdbc:mysql://localhost:3306/testDB
src>main>resources中的属性将具有:
spring.datasource.url=jdbc:mysql://localhost:3306/actualDB
@SpringBootTest
@交易的
公共类JpatestsApplicationTests{
@自动连线
私人FirstTableRepo jpaRepo;
@试验
@回滚
公共void testSave(){
FirstTable firstTable1=新的FirstTable();
第一个表1.setUid(“x”);
第一表1.setRandom(“兰德”);
jpaRepo.saveAndFlush(第一张表1);
}
}
哪种方法更好?第一种方法将测试数据和实际数据保存在单独的模式中,而第二种方法保存在同一个表中,但将回滚,而不会提交到数据库