一、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 | 嵌套測試 |
