Junit版本与springboot版本关系
Junit
spring-boot-starter-test有如下⼏个库:
序号库名的解释
1JUnit 5:兼容 JUnit 4,Java 应⽤程序单元测试的事实标准
2Spring Test 和 SpringBootTest:对Spring Boot应⽤程序的公共和集成测试⽀持
3AssertJ:流式断⾔库
4Hamcrest:匹配对象库
5Mockito:Java 模拟框架
6JSONassert:JSON 断⾔库
7JsonPath:JSON XPath
因此,如果是Springboot项⽬,⽆需再重复引⼊Spring-Test包和Junit包,从Springboot 2.2.X开始版本为junit5。
@SpringBootTest>:获取启动类,加载配置,寻主配置启动类(被 @SpringBootApplication 注解的)
@RunWith(SpringRunner.class)>:让JUnit运⾏Spring的测试环境,获得[Spring环境的上下⽂]的⽀持
使⽤Junit4需要以上两个注解,junit5仅需@SpringBootTest
2、SpringJUnit4ClassRunner与SpringRunner关系
部分⼈习惯使⽤SpringJUnit4ClassRunner,SpringRunner是继承⾃这个类的,两者没有区别
public final class SpringRunner extends SpringJUnit4ClassRunner {
public SpringRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
}
spring framework版本3、使⽤junit5
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖排除说明:这个是JUnit5中为了⽀持使⽤JUint4所做的⼀个过度,也就是说,你只需要在你的JUnit4旧项⽬中添加这个依赖,就能完美过渡,⽽不⽤修改之前代码。(如果要在⼤于springboot 2.2.x版本使⽤junit4,上述的依赖排除删掉,还需⼿动引⼊junit4的jar包因为2.2.x只有junit5依赖)
JUnit5结构:
Junit5 = JUnit Platform + JUnit JUpiter + JUnit Vintage
JUnit Platform:这是Junit提供的平台功能模块,通过它,其它的测试引擎都可以接⼊Junit实现接⼝和执⾏。
JUnit JUpiter:这是JUnit5的核⼼,是⼀个基于JUnit Platform的引擎实现,它包含许多丰富的新特性来使得⾃动化测试更加⽅便和强⼤。
JUnit Vintage:这个模块是兼容JUnit3、JUnit4版本的测试引擎,使得旧版本的⾃动化测试也可以在JUnit5下正常运⾏。
如果是SpringBoot项⽬,使⽤Junit测试仅需Starter即可,2.2.x前为junit4,后为junit5,仅需⼀个starter依赖,除⾮要变更2.2.x为junit4,不需要排除j5->j4的依赖且需要引⼊j4依赖。
部分项⽬ j4 j5共存,这种依赖关系是显得那么混乱⽆法管理,出现问题难以处理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。