一、Junit5框架構成
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
JUnit Platform: 是在jvm上啟動測試框架的基礎,定義了測試引擎的API,可以在cmd命令行啟動這個平台
JUnit Jupiter:是新編程模塊和擴展模塊在junit5上寫測試和擴展的組合,Jupiter子工程提供在平台上跑Jupiter的測試引擎
JUnit Vintage:提供跑junit3和junit4的測試引擎
備注:JUnit 5 對 Java 運行環境的最低要求是 Java 8
二、Junit5新特性
- 嵌套單元測試
- Lambda支持
- 參數化測試
- 重復測試
- 動態測試
三、Junit5注解
junit5與junit4的注解比較
junit5 | junit4 | 說明 |
@Test | @Test | 被注解的方法是一個測試方法。與junit4相同 |
@BeforeAll | @BeforeClass | 被注解的(靜態)方法將在當前類的所有@Test方法前執行一次 |
@BeforeEach | @Before | 被注解的方法將在當前類的每個@Test方法前執行 |
@AfterEach | @After | 被注解的方法將在當前類的每個@Test方法后執行 |
@AfterAll | @AfterClass | 被注解的(靜態)方法將在當前類的所有@Test方法后執行一次 |
@Disable | @Ignore | 被注解的方法不會執行(跳過),但會報告已執行 |
常用注解
注解 | 說明 |
@Test | 表名是一個測試方法 |
@DisplayName | 測試類或方法的顯示名稱 |
@BeforeEach | 表明在單個測試方法運行之前執行的測試方法 |
@AfterEach | 表明在單個測試方法運行之后執行的測試方法 |
@BeforeAll | 表明在所有測試方法運行之前執行的測試方法 |
@AfterAll | 表明在所有測試方法運行之后執行的測試方法 |
@Disabled | 禁用測試類或方法 |
@Tag | 為測試類或方法加標簽 |
@RepeatedTest | 額外重復執行 |
@Nested | 嵌套測試 |