一、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 | 嵌套测试 |