You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:47:59