繁体   English   中英

Spring Boot 测试:如何仅使用某些 Bean?

[英]Spring Boot Test: How To Use Only Certain Beans?

我有一堆 bean 的 Spring 启动应用程序。 他们的数量每天都在增加。 所以我需要模拟新 bean 的所有时间或测试都会失败。 所以,问题很简单:如何强制 Spring Boot 测试只使用应用程序上下文中的少数特定 bean 而不是全部

所以,我想通了:你需要在测试包中创建类并点测试类从那里运行 spring,你必须定义需要扫描哪些包的组件。 为此,请使用前缀scanBasePackages或注释@ComponentScan ("packageForScan")

@SpringBootApplication(scanBasePackages = {"com.domain.folder1.package1","com.domain.folder1.package2"})
    public static class CustomApplicationRunner {
        public static void main(String[] args) {
            SpringApplication.run(CustomApplicationRunner.class, args);
        }
    }

在测试类中,您必须将此类作为运行应用程序的主要类。

@SpringBootTest(classes = MyTestClass.CustomApplicationRunner.class)
@RunWith(SpringRunner.class)
public class MyTestClass {//tests}

这是您可以包含或排除(使用注释@ComponentScan)添加到应用程序上下文的任何包的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM