gpt4 book ai didi

java - 在SpringBootTest中排除少数@Component注解的类

转载 作者:行者123 更新时间:2023-12-01 18:17:54 36 4
gpt4 key购买 nike

我有几个带有 @Component 注解的类,我在其中初始化了配置器,例如 DBConfigurer、SecurityConfigurer、JmxConfigurer 等等。

在添加功能测试时,我希望少数类不应该被加载。我可以排除上面定义的几个配置器吗?

我定义的测试类如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { ServiceStarter.class }, properties = { "jmx.rmi.port=19057", "hostname=localhost" })
@ContextConfiguration(classes = {ControllerTest.BeansOverrideConfigurer.class})
public class ControllerTest {
// All test here.
}

我可以在测试类的 @ContextConfiguration block 内定义选定的配置器,但我不想这样做,因为将来如果有人添加新的配置器,它应该会自动导入在测试用例中。

最佳答案

对那些您不想在特定配置文件中加载的组件使用@Profile,例如测试(即仅在生产和开发期间)。

@Component
@Profile("production")
public class ComponentClass {}

然后定义您想要在测试期间运行的@ActiveProfile,例如

@SpringBootTest
@ActiveProfiles("test")
public class ControllerTest {}

您可以引用 Spring Framework 文档和 Spring Boot 文档以获取更多信息 docs.spring.io

关于java - 在SpringBootTest中排除少数@Component注解的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60332681/

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