gpt4 book ai didi

java - 测试@ConditionalOnClass自动配置

转载 作者:行者123 更新时间:2023-12-03 09:09:40 26 4
gpt4 key购买 nike

我们开发了许多“内部”Spring Boot Starter 和自动配置,支持各种 NFR,例如日志记录、配置、安全性等。

我们面临的最大测试挑战是如何测试@ConditionalOnClass自动配置的不同组合。

例如:

@Configuration
@ConditionalOnClass(Foo.class)
public class Config1 {

}

@Configuration
@ConditionalOnClass(Bar.class)
public class Config2 {

}

@Configuration
@ConditionalOnMissingClass(Foo.class)
public class Config3 {

}

我们如何操作测试项目的类路径来测试类路径上存在的 FooBar jar 文件的各种组合?那里有图书馆吗?我想知道 Spring 人员是如何做到这一点的?

最佳答案

我认为您正在寻找的是 ApplicationContextRunner。

@Test
public void whenDependentClassIsNotPresent_thenBeanMissing() {
new ApplicationContextRunner().withUserConfiguration(ConditionalOnClassConfiguration.class)
.withClassLoader(new FilteredClassLoader(DependentClass.class))
.run(context -> assertThat(context).doesNotHaveBean(BeanConditionalOnDependentClass.class));
}

来源:https://www.baeldung.com/spring-boot-context-runner

关于java - 测试@ConditionalOnClass自动配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com