@ConditionalOnProperties注解测试问题求助:验证指定属性存在时Bean是否正确创建
@ConditionalOnProperties注解测试问题求助:验证指定属性存在时Bean是否正确创建
我现在遇到一个难题,想写测试验证@ConditionalOnProperties注解是否正常工作,但不知道怎么通过配置多个应用属性来判断对应的Bean是否被正确创建。
需要被创建为Bean的类代码如下:
@Component @ConditionalOnProperties(prefix = "card.services.connection", value = "baseUrl") public class CardService { }
我尝试通过System.setProperty(..)来设置属性,写了下面这个测试类:
@SpringBootTest(classes = CardConfiguration.class) class ContextTest { @Autowired private ConfigurableApplicationContext context; @BeforeEach void setUp() { System.setProperty("card.services.connection.baseUrl", "http://localhost:8080"); } @Test void registerCardBean() { context.getBeanFactory().registerSingleton("cardbean", mock(CardService.class)); boolean tietob2crest = context.containsBeanDefinition("cardbean"); Assertions.assertTrue(tietob2crest); } }
可这个测试失败了,我明明已经设置了对应的属性,注解里也明确指定只要该属性存在就可以创建Bean,但就是不生效。
有没有大佬能给我推荐一个这类场景的最佳实践呀?
备注:内容来源于stack exchange,提问作者Abdurauf
相关产品推荐
相关产品推荐

