我有一堆豆子的Spring Boot应用程序。他们的数量每天都在增加。因此,所有需要模拟新bean或测试的时间都会失败。因此,问题很简单:如何强制进行Spring Boot测试仅使用应用程序上下文中的某些特定bean,而不使用全部?
答案 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注释)任何程序包不添加到应用程序上下文中的方法。