Java SpringBoot测试配置
我已经开始学习版本2.1.0中的SpringBoot,并制作了一个简单的应用程序控制器->服务->存储库->数据库(H2)。非常非常简单的应用程序,从Spring Boot开始 我已经读到,在这个框架中,我可以在src/resources下添加一个文件data.sql,在那里我可以定义插入/更新等,在运行应用程序之后,数据将被存储。一切正常,但当我想为我的服务编写测试时,只是为了检查我的存储库是否正常工作(我测试数据库是为了学习),我发现当我在数据库中运行测试时,已经有data.sql中的值,但我在test文件夹下没有data.sql。它属于src 也许有人知道,如何配置不从src/resources获取此data.sql的项目?可能吗?也许我需要添加更多的注释 ****编辑****Java SpringBoot测试配置,java,spring,spring-boot,spring-data-jpa,spring-boot-test,Java,Spring,Spring Boot,Spring Data Jpa,Spring Boot Test,我已经开始学习版本2.1.0中的SpringBoot,并制作了一个简单的应用程序控制器->服务->存储库->数据库(H2)。非常非常简单的应用程序,从Spring Boot开始 我已经读到,在这个框架中,我可以在src/resources下添加一个文件data.sql,在那里我可以定义插入/更新等,在运行应用程序之后,数据将被存储。一切正常,但当我想为我的服务编写测试时,只是为了检查我的存储库是否正常工作(我测试数据库是为了学习),我发现当我在数据库中运行测试时,已经有data.sql中的值,但
您可以在
test/resources
并在测试中覆盖如下内容:
@RunWith(SpringRunner.class)
@SpringApplicationConfiguration(classes = ExampleApplication.class)
@TestPropertySource(locations="classpath:test.properties")
public class ExampleApplicationTests {
}
然后在运行脚本的新创建的应用程序测试.properties
文件块中:
spring.datasource.initialization-mode=never
您确定db存在于您的应用程序之外,并且当您运行测试时,它只从数据库中获取数据?还是在内存数据库中?如果你不想使用数据库中的数据,你应该模拟你的存储我在内存数据库中使用。为什么当我运行ServiceTest SpringBoot扫描我的应用程序结构时,甚至当ServiceTest正在测试//ServiceTest时,它也会从src/resources下的data.sql中获取数据?我确信它会从内存中的数据库中获取数据,因为在data.sql中,我有2个插入,在测试中,例如“getAll()”我预期结果为0,但我得到了2。顺便问一下,您在测试中如何使用存储库?我链接了我的repo,您可以查看。