zoukankan      html  css  js  c++  java
  • Junit版本与springboot版本关系

    Junit

    spring-boot-starter-test有如下几个库:

    序号库名的解释
    1 JUnit 5:兼容 JUnit 4,Java 应用程序单元测试的事实标准
    2 Spring Test 和 SpringBootTest:对Spring Boot应用程序的公共和集成测试支持
    3 AssertJ:流式断言库
    4 Hamcrest:匹配对象库
    5 Mockito:Java 模拟框架
    6 JSONassert:JSON 断言库
    7 JsonPath: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);
      }
    }

     

    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共存,这种依赖关系是显得那么混乱无法管理,出现问题难以处理。

  • 相关阅读:
    RabbitMQ入门-消息订阅模式
    RabbitMQ入门-消息派发那些事儿
    RabbitMQ入门-高效的Work模式
    RabbitMQ入门-从HelloWorld开始
    RabbitMQ入门-初识RabbitMQ
    CMake INSTALL 命令设置exe dll lib的安装位置
    VS调试DLL代码使用”附加到进程“
    模型自身面片重合引起的闪烁破损解决方法
    地球表面使用世界坐标系绘制物体闪烁破损处理方法
    3dmax osg格式导出插件 osgExp OpenSceneGraph Max Exporter
  • 原文地址:https://www.cnblogs.com/mzc1997/p/14306538.html
Copyright © 2011-2022 走看看