[跟着官方文档学Junit5][一][Overview][学习笔记]
[跟着官方文档学Junit5][一][Overview][学习笔记]
JUnit5文档的目标是为编写测试的程序员,拓展作者和引擎作者以及构建工具和IDE供应商提供全面的参考文档。
1.什么是Junit5
和上一个版本的JUnit不一样,JUnit5由来自三个不同子项目的几个不同模块组成。
JUnit5=JUnit Platform+JUnit Jupiter+JUnit Vintage
JUnit Platform是启动JVM测试框架的基础服务,它也为在平台上运行开发的测试框架定义了TestEngine
API。此外,平台提供了控制台启动器(Console Launcher)用于从命令行模式(command line)启动平台,JUnit平台套件引擎(JUnit Platform Suite Engine)用于在平台使用一个或多个测试引擎运行一个定制测试套件。一些流行的平台也很好地提供了JUnit支持(IntelliJ IDEA,Eclipse,NetBeans,Visual Studio Code)和构建工具(Gradle,Maven,Ant)。
JUnit Jupiter是新的编程模型和拓展模型的组合,用于在JUnit5中编写测试和拓展。
JUnit Vintage提供TestEngine
来运行基于JUnit3和JUnit4的测试。要求在class path或者module path的JUnit版本至少4.12。
2.Junit5支持的Java版本
JUnit5要求Java版本不低于8。然而,你也可以测试以前JDK版本编译的程序。
3.获取帮助
可以在Stack Overflow上提问JUnit5的相关问题或者在Gitter上和其他人交流。
4.开始使用
4.1.下载JUnit的Artifacts
若要了解哪些项目可供下载并包含在项目中,请参阅依赖项元数据。若要为生成设置依赖项管理,请参阅生成支持和示例项目。
4.2.JUnit5特性
了解JUnit5有哪些特征并使用它们,可以通过教程的以下板块
- 在JUnit Jupiter中编写测试
- 从JUnit4迁移到JUnit Jupiter
- 运行测试
- JUnit Jupiter的拓展模型
- 高级板块
- JUnit平台启动API
- JUnit平台测试套件
4.3.示例项目
若要查看可以复制和试验的完整工作项目示例,JUnit5-Sample仓库是一个很好的起点。JUnit5-Sample存储了一系列基于JUnit Jupiter、JUnit Vintage和其他测试框架的示例项目。可以在示例项目中找到合适的构建脚本(比如build.gradle、pom.xml等)。
以Maven为例子,可以查看https://github.com/junit-team/junit5-samples/tree/r5.8.2/junit5-jupiter-starter-maven
4.4.环境搭建
4.4.1.安装JDK
- 本例子使用Oracle的Java11,下载地址:https://www.oracle.com/java/technologies/downloads/
- 在页面中找到Java 11,选择x64 Installer,进行下载
- 下载完成后进行安装,一直点击下一步即可
- 安装完成后在cmd窗口分别输入
java -version
和javac
如果都有提示证明安装配置环境变量成功。
4.4.2.安装IDEA
- 本例子IDEA版本为:IDEA Community 2022.1版本
- 浏览器输入JetBrains官网的IDEA页面链接,https://www.jetbrains.com/idea/
- 在页面点击右上角的Download
- 在下载页面点击Community下面的按钮完成下载
- 安装过程同样一直点击下一步即可
4.4.3.搭建项目
-
打开IDEA后点击New Project
-
输入新项目的项目名称和地址,选择语言版本为Java,构建Maven,JDK选择JDK 11,点击Create完成创建。
-
在pom.xml中引入JUnit依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
- 点赞
- 收藏
- 关注作者
评论(0)