概念
本课程主要内容是什么?
了解 Java 的 JUnit 5 测试框架。
简介
Java 开发者可能没有使用过 Spring 或 Hibernate 框架,但应该了解 JUnit。作为 Java 的事实标准单元测试框架,JUnit 是开发者的热门选择。尽管出现了像 TestNG 这样的新单元测试框架,但 JUnit 仍然是许多新项目进行单元测试的首选。JUnit 5 于 2017 年 9 月 10 日发布,引入了许多新特性,同时仍能运行使用 JUnit 4 和 JUnit 3 编写的测试用例。
...
什么是 JUnit 5?
JUnit 5 由三个子项目组成:
- JUnit Platform:是启动 JVM 上测试框架的基础。
- JUnit Jupiter:提供了 JUnit 5 的全新编程模型和扩展模型。
- JUnit Vintage:在 JUnit Platform 上运行 JUnit 4 和 JUnit 3 的测试。它要求类路径或模块路径中存在 JUnit 4.12 及以上版本。
...
JUnit 5 架构
JUnit Jupiter 和 JUnit Vintage 是基于 JUnit Platform 的两种不同实现。每个子项目包含一个或多个模块,这些模块的构件可以在其他场景中复用。本课程将使用 JUnit 5 版本 5.8.2。
目标受众
单元测试已演变为设计、编码与调试的精彩结合。本课程将帮助我们从测试中获得实际价值。即使你对相关概念尚不熟悉,本课程也能帮助你掌握大部分单元测试的核心内容。
...
先决条件
本课程的要求包括:
- 掌握 Java 语言的基本知识。
- 对单元测试、外部依赖项和库有基本理解。
JUnit 5 相较于 JUnit 4 的优势
让我们来看一下 JUnit 5 相较于 JUnit 4 的主要优势:
JUnit 版本对比
| JUnit 4 | JUnit 5 |
|---|---|
| JUnit 4 将整个框架打包在一个 jar 文件中,这意味着即使只需要一个功能,也必须导入整个库。 | JUnit 5 提供了更细粒度的模块化结构,可按需导入所需部分。 |
| 在 JUnit 4 中,测试运行器一次只能执行一个测试(例如 SpringJUnit4ClassRunner 或 Parameterized)。 | JUnit 5 支持多个运行器同时工作。 |
| JUnit 4 不支持 Java 8,因此无法利用 Java 8 的诸多新特性。 | JUnit 5 充分利用了 Java 8 的特性。 |