mongodb - @SpringBootTest 如何预填充嵌入式 MongoDB?
问题描述
基于并尝试使用注释功能编写具有几个端点的微Spring Boot
服务MongoDB
实现@SpringBootTest
。
目前,我面临一个问题,我需要MongoDB
使用一些测试数据预填充仅在“测试”短语期间实例化的嵌入式实例。
而且我没有找到任何可用Spring Boot
于此目的的开箱即用选项。
有些人建议使用mongobee或mongoprefill或nosql-unit等测试数据预填充工具,但对我来说,这似乎是开销或解决方法,即使在测试范围内也不想引入任何新的依赖项。
那么您能否建议:在当前的生态系统中,当我们谈论集成(端到端)测试时,为了测试目的Spring Boot
而预先填充的正确方法是什么?MongoDB
@SpringBootTest
解决方案
有多种方法可以预填充数据:
- 使用 JUnit 生命周期方法,如
@BeforeEach
,@BeforeAll
来填写数据 - 您可以禁用嵌入式 MongoDB 的 Spring Boot 自动配置并自行执行并在创建连接后插入数据
- 您可以以某种方式反映
@Sql
我们用于测试关系数据库的功能,并使用AsbtractTestExectuionListener
. 为此,请查看 Spring 类SqlScriptsTestExecutionListener
- 提供一个实现
CommandLineRunner
接口的类,并且只为您的集成测试配置文件激活这个 bean@Profile("integration-test")
推荐阅读
- python - 如何使用flask和html返回在下拉列表中选择的值列表
- selenium - 错误:在“位置”找不到硒服务器 jar
- ruby - Ruby:如何确定方法调用者分配了多少变量
- docker - 从官方 Dockerfile 构建 Google mtail 映像失败
- javascript - 从类名中获取数字
- python - Ignored properly imported module
- python - Python - 当我尝试遍历更新()时,我的字典只有 res
- bash - 为什么当“[:==:一元运算符预期”时bash脚本不会立即离开代码
- python - 如何使用 Python OpenCV 优化圆检测?
- python - 我如何解释两个“=”和整个这个表达式?