春季启动测试:如何仅使用某些Bean?

时间:2020-10-01 07:50:07

标签: spring spring-boot spring-test

我有一堆豆子的Spring Boot应用程序。他们的数量每天都在增加。因此,所有需要模拟新bean或测试的时间都会失败。因此,问题很简单:如何强制进行Spring Boot测试仅使用应用程序上下文中的某些特定bean,而不使用全部

1 个答案:

答案 0 :(得分:0)

所以,我弄清楚了:您需要在测试包中创建类,然后指向测试类以从那里运行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注释)任何程序包不添加到应用程序上下文中的方法。