一、Junit 简介与架构
什么是 Junit5,在 Junit5 的官方介绍文档中这写到:
Junit5 由JUnit Platform + JUnit Jupiter + JUnit Vintage3部分构成,借用 IBM Developer 的一张图来说明 JUnit 5 的架构:
JUnit Platform:
其主要作用是在 JVM 上启动测试框架。它定义了一个抽象的 TestEngine API 来定义运行在平台上的测试框架;也就是说其他的自动化测试引擎或开发人员??定制的引擎都可以接入 Junit 实现对接和执行。同时还支持通过命令行、Gradle 和 Maven 来运行平台(这对于我们做自动化测试至关重要)。
JUnit Jupiter:
这是 Junit5 的核心,可以看作是承载 Junit4 原有功能的演进,包含了 JUnit 5 最新的编程模型和扩展机制;很多丰富的新特性使 JUnit ?动化测试更加方便、功能更加丰富和强大。也是测试需要重点学习的地方;Jupiter 本身也是?一个基于 Junit Platform 的引擎实现,对 JUnit 5 而言,JUnit Jupiter API 只是另一个 API!。
JUnit Vintage:
Junit 发展了10数年,Junit 3 和 Junit 4 都积累了大量的?用户,作为新一代框 架,这个模块是对 JUnit3,JUnit4 版本兼容的测试引擎,使旧版本 junit 的?动化测试脚本也可以顺畅运行在 Junit5 下,它也可以看作是基于 Junit Platform 实现的引擎范例。
JUnit 5 对 Java 运行环境的最低要求是 Java 8。
二、Junit5 的新特性
·嵌套单元测试
· Lambda支持
· 参数化测试
· 重复测试
· 动态测试
JUnit 4 与 JUnit 5 中的注解比较:
三、JUnit 5 常用注解
3.1 Junit5 常用注解
3.2 实操演示
1)创建 maven 工程 XUnit,pom.xml中添加Junit5的依赖。
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
2)其余的 XUnit 框架通用的设计运行规则可参考:《如何利用 xUnit 框架对测试用例进行维护》。
3)添加用例@Test,再在用例执行前后添加@BeforeEach、@AfterEach:
运行结果:
4)在测试类执行前后添加@BeforeAll和@AfterAll:
测试结果:
5)在测试用例test1上加入注解@Disabled,使test1失效。
测试结果:
从测试结果中我们可以看到 test1 用例被 ignore,没有被执行。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理