JUnit 5 完全指南
Java 单元测试的核心框架,2026年最新标准
概述
JUnit 5 是 Java 单元测试的最新标准,由三个主要模块组成:
| 模块 | Artifact | 职责 |
|---|---|---|
| JUnit Platform | junit-platform-commons | 测试发现的通用 API |
| JUnit Jupiter | junit-jupiter-* | 新一代测试编程模型 |
| JUnit Vintage | junit-vintage-engine | 兼容 JUnit 3/4 的测试 |
快速开始
Maven 依赖
xml
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
</plugins>
</build>Gradle 依赖
groovy
test {
useJUnitPlatform()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
}核心内容导航
| 专题 | 内容 |
|---|---|
| **Java\JUnit5-注解体系** | 生命周期、标记、条件执行、嵌套测试 |
| **Java\JUnit5-断言机制** | 基础断言、组合断言、AssertJ |
| **Java\JUnit5-参数化测试** | @ValueSource、@CsvSource、@MethodSource |
| **Java\Mockito-完全指南** | Mock 对象、验证调用、ArgumentMatchers |
| **Java\SpringBoot-测试专题** | @SpringBootTest、@WebMvcTest、@DataJpaTest |
| **Java\JUnit5-最佳实践** | AAA模式、测试替身、性能优化 |
新特性亮点
- 嵌套测试 - 用
@Nested组织相关测试用例 - 动态测试 -
@TestFactory动态生成测试用例 - 条件执行 -
@EnabledIf/@DisabledIf - 标签过滤 -
@Tag替代过时的@Category - 并行执行 - 配置
junit.jupiter.execution.parallel.enabled=true - 显示名称 -
@DisplayName支持中文、emoji
学习路径
入门 → 注解体系 → 断言机制 → 参数化测试 → Mockito → Spring Boot → 最佳实践📚 建议顺序:先掌握注解体系 → 断言机制 → 参数化测试 → Mockito → Spring Boot 集成
相关工具
- AssertJ - 流式断言库
- Mockito - Mock 框架
- TestContainers - 真实数据库测试
- REST Assured - REST API 测试
- JaCoCo - 代码覆盖率
#标签 #java #单元测试 #junit5 #testing