gpt4 book ai didi

mongodb - @SpringBootTest 如何预填充嵌入式MongoDB?

转载 作者:行者123 更新时间:2023-12-04 10:26:10 28 4
gpt4 key购买 nike

使用基于 Spring BootMongoDB 的一些端点实现微服务,并尝试使用 @SpringBootTest 注释功能编写集成测试.

目前,我面临一个问题,我需要预先填充一个嵌入式 MongoDB 实例,该实例仅在“测试”阶段用一些测试数据实例化。

而且我没有在 Spring Boot 中找到用于此目的的任何开箱即用的选项。

有些人建议使用测试数据预填充工具,如 mongobeemongoprefillnosql-unit但对我来说,这似乎是开销或解决方法,即使在测试范围内也不想引入任何新的依赖项。

请问您能否提出建议:在当前的 Spring Boot 生态系统中,当我们谈论集成时,为了测试目的预填充 MongoDB 的正确方法是什么?使用 @SpringBootTest(端到端)测试?

最佳答案

有多种方法可以预填充数据:

  1. 使用@BeforeEach@BeforeAll等JUnit生命周期方法填充数据
  2. 您可以禁用嵌入式 MongoDB 的 Spring Boot 自动配置并自行执行并在创建连接后插入数据
  3. 您可以以某种方式反射(reflect)我们用于测试关系数据库的 @Sql 功能,并使用 AsbtractTestExectuionListener 编写类似的内容。为此,请查看 Spring 类 SqlScriptsTestExecutionListener
  4. 提供一个实现 CommandLineRunner 接口(interface)的类,并且只使用 @Profile("integration-test") 为您的集成测试配置文件激活此 bean

关于mongodb - @SpringBootTest 如何预填充嵌入式MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60627126/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com