1

出于好奇......我是 Spring Boot 的新手,我正在做一些集成测试,使用@SpringBootTest测试类的更新注释。

在常规代码(非测试代码)中,应用程序有一个自定义初始化程序,允许它加载外部 YAML 文件。

我想在测试中使用它,所以我有一个@ContextConfiguration覆盖初始化器的注释,并且可能因为我添加了这个注释,它搞砸了@SpringBootTest正在做的任何巫术,所以我需要添加 classes 参数来给它mainSpringApplication以便在测试期间应用程序上下文可用并且Autowired可以找到 bean。

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = ExamProcessorApplication.class, initializers = YamlFileApplicationContextInitializer.class)
@SpringBootTest
@Transactional
public class AssessmentRepositoryImplIT {
    ...
}

我的问题是 - 提供ExamProcessorApplication.class(主 SpringBootApplication)与默认行为在自动发现期间 @ContextConfiguration的作用相同 - 或多或少?@SpringBootTest

我和一位同事正在讨论这个问题,我的想法是我的方式实际上是实例化主应用程序对象,但@SpringBootTest不是。只是试图了解引擎盖下发生了什么。

4

0 回答 0