如何测试与早期 Spring 引导集成的逻辑?

问题描述 投票:0回答:1

如果我认为两个或多个活动配置文件存在冲突,我会尝试阻止我的 Spring Boot 应用程序启动。 IE。

dev
prod
不应同时处于活动状态。

此外,我想确保这个逻辑及其与 Spring 引导代码的集成经过正确测试。

我尝试了

EnvironmentPostProcessor
以及
ApplicationEvent<ApplicationEnvironmentPrepared>
,我用
@SpringBootTest
注释了测试,并且在测试方法中使用了
assertThrows

如果我这样做

new AnnotationApplicationContext()
我似乎找不到一种方法来操纵上下文使用的环境,如果我尝试自己测试
SpringApplication.run()
测试应用程序,它似乎无法找到任何可注入的bean为了环境。

我很确定我正在尝试错误的事情,也许有一种更简单的方法可以实现我的目标。任何提示或指示将不胜感激。

spring spring-boot testing spring-test spring-profiles
1个回答
0
投票

您是否尝试过使用

EnvironmentPostprocessor
注册您的自定义
spring.factories
?这可以通过将以下代码放入位于
spring.factores
META-INF/spring.factories
文件中来完成:

org.springframework.boot.env.EnvironmentPostProcessor=com.example.MyCustomEnvPostProcessor
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.