java - SpringBoot 测试配置
问题描述
我在2.1.0版本开始学习Spring Boot,做了一个简单的应用Controller->Service->Repository->Database(H2)。非常非常简单的应用程序,只是从 Spring Boot 开始。
我已经读过,在那个框架中,我可以在src/resources下添加一个文件data.sql,我可以在其中定义插入/更新等,并在运行我的应用程序后存储数据。一切正常,但是当我想为我的服务编写测试时,只是为了检查我的存储库是否正常(我为了学习目的而测试数据库)我看到当我在我的数据库中运行我的测试时,已经有来自 data.sql 的值,但我在 test 文件夹下没有 data.sql 。它在 src 下。
也许有人知道,如何配置不从 src/resources 获取这个 data.sql 的项目?是否可以?也许我必须添加更多注释?
**** 编辑 ****
解决方案
您可以像这样在测试中创建测试并在测试application-test.properties
中test/resources
覆盖:
@RunWith(SpringRunner.class)
@SpringApplicationConfiguration(classes = ExampleApplication.class)
@TestPropertySource(locations="classpath:test.properties")
public class ExampleApplicationTests {
}
然后在您新创建application-test.properties
的文件块中运行您的脚本:
spring.datasource.initialization-mode=never
推荐阅读
- reactjs - React - 数组的动态索引。为对象键提供未定义
- webapi - 基于命令/CLI 的 REST Http 客户端来处理批量请求(例如 .http 文件)
- unix - 如何重命名多个文件夹中的多个文件?
- nginx - 从 $request_body 获取字段并将其与位置服务器 nginx 中的特定值进行比较
- encoding - FPDF 新增中欧编码字体
- javascript - 为什么我下面的异步函数会得到错误代码“未捕获的语法错误:标识符‘消息’已被声明”?
- javascript - Multer不会从手机上传文件,但可以从PC上传好
- mysql - 您应该将 USER 数据放在单个 MySQL 数据库中的表中,还是有一个单独的数据库用于 USER 数据?
- dockerfile - 使用“error php_intl.lo”构建 Dockerfile PHP 错误
- reactjs - 只要我从服务器获得正确的数据,手动更新缓存是否应该始终是突变后的首选选项?