Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBoot测试配置_Java_Spring_Spring Boot_Spring Data Jpa_Spring Boot Test - Fatal编程技术网

Java SpringBoot测试配置

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中的值,但

我已经开始学习版本2.1.0中的SpringBoot,并制作了一个简单的应用程序控制器->服务->存储库->数据库(H2)。非常非常简单的应用程序,从Spring Boot开始

我已经读到,在这个框架中,我可以在src/resources下添加一个文件data.sql,在那里我可以定义插入/更新等,在运行应用程序之后,数据将被存储。一切正常,但当我想为我的服务编写测试时,只是为了检查我的存储库是否正常工作(我测试数据库是为了学习),我发现当我在数据库中运行测试时,已经有data.sql中的值,但我在test文件夹下没有data.sql。它属于src

也许有人知道,如何配置不从src/resources获取此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,您可以查看。