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共存,這種依賴關系是顯得那么混亂無法管理,出現問題難以處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM