出于好奇......
我是Spring Boot的新手,我正在进行一些集成测试,使用较新的@SpringBootTest
注释进行测试。
在常规代码(非测试代码)中,应用程序有一个自定义初始化程序,允许它加载外部YAML文件。
我想在测试中使用它,所以我有一个@ContextConfiguration
注释覆盖了初始化器,可能因为我添加了这个注释,它会弄乱@SpringBootTest
正在做的任何伏都教,所以我需要添加classes参数以赋予它主SpringApplication
,以便在测试期间可以使用应用程序上下文,并且可以找到Autowired
bean。
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = ExamProcessorApplication.class, initializers = YamlFileApplicationContextInitializer.class)
@SpringBootTest
@Transactional
public class AssessmentRepositoryImplIT {
...
}
我的问题是 - ExamProcessorApplication.class
(主要的SpringBootApplication)在@ContextConfiguration
中提供相同的 - 或多或少 - 作为默认行为@SpringBootTest
在其自动期间的行为-发现?
一位同事和我正在讨论这个问题,我的想法是我的方式实际上是实例化主应用程序对象,但@SpringBootTest
不是。只是想了解幕后发生了什么。