②如何知道是否依赖Spring容器
西魏陶渊明 ... 2022-3-24 小于 1 分钟
默认使用 BlockJUnit4ClassRunner
来进行运行。即不依赖容器。
假如说如果需要容器怎么办呢 ?
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class}) // 指定启动类
public class BaseApplicationTest {
}
1
2
3
4
2
3
4
- SpringRunner告诉JUnit要使用Spring容器
- SpringBootTest告诉JUnit容器的引导类是这个
JUnit是如何实现的呢?
前面启动类中我们使用的注解是 @RunWith
和 @SpringBootTest
那么哪里来解析这个的呢?
由此 JUnit
知道要使用 SpringRunner
进行引导。
由上图我们知道 SpringRunner
实例化的入参就是当前的测试类。那么后续所有的奥妙就在这里了。
我们跟进构造往下追究。
BootstrapUtils#resolveTestContextBootstrapper
拿到SpringBoot的测试引导类 SpringBootTestContextBootstrapper
拿到SpringBoot容器的启动 Main
函数。
到此已经拿到了所有的SpringBoot容器启动参数了。
本文由西魏陶渊明版权所有。如若转载,请注明出处:西魏陶渊明