java中junit 5单元测试核心是三步:加依赖(引入junit-jupiter)、写测试类(@test标记、void无参方法、静态导入assertions)、执行验证(ide右键/maven命令行/调试),无需main方法。

Java 中使用 JUnit 5 编写和运行基础单元测试,核心是三步:加依赖、写测试类、执行验证。不需要 main 方法,也不依赖手动输出,一切由框架自动识别和驱动。
添加 JUnit 5 依赖
确保项目能调用 @Test、Assertions 等功能,必须引入 Jupiter 模块。Maven 项目在 pom.xml 的 <dependencies></dependencies> 中添加:
<dependency></dependency><groupid>org.junit.jupiter</groupid>@#@#@#@#@#@#@#@#@#@0)<scope>test</scope>
Gradle 用户则在 build.gradle 中写:
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
IDE(如 IntelliJ 或 Eclipse)通常会自动识别 test 目录并启用 JUnit 支持;若未识别,右键 test 文件夹 → “Mark as Test Sources Root” 即可。
编写测试类和测试方法
测试类一般放在 src/test/java 下,命名习惯以 Test 结尾(如 CalculatorTest),不需继承任何类,也不需要 public 类修饰(默认包访问即可)。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
关键规则:
- 用
@Test注解标记每个独立测试方法 - 测试方法必须是 void 返回类型、无参数、非 static
- 导入断言:
import static org.junit.jupiter.api.Assertions.*; - 常用断言示例:
assertEquals(5, calc.add(2, 3));、assertTrue(list.isEmpty());、assertThrows(IllegalArgumentException.class, () -> calc.divide(5, 0));
示例片段:
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class CalculatorTest {
@Test
void testAddition() {
Calculator calc = new Calculator();
assertEquals(7, calc.add(3, 4), "3 + 4 应该等于 7");
}
@Test
void testDivideByZero() {
Calculator calc = new Calculator();
assertThrows(IllegalArgumentException.class, () -> calc.divide(10, 0));
}
}
运行测试的方法
有三种常用方式,效果一致,按场景选择:
- IDE 内运行:在测试类或测试方法内右键 → “Run ‘xxxTest’” 或 “Run ‘testMethodName’”,结果实时显示在 JUnit 面板中(绿色表示通过,红色为失败)
-
Maven 命令行:终端进入项目根目录,执行
mvn test。它会编译测试代码、运行全部@Test方法,并生成简明报告(如 “Tests run: 2, Failures: 0, Errors: 0”) - 单测调试:在测试方法内打断点,右键 → “Debug ‘xxxTest’”,可逐行观察变量、执行流程,比 System.out.println 高效可靠得多
几个实用小提示
让测试更规范、易维护:
- 每个测试方法只验证一个逻辑点(例如:只测正常相加,另起一个方法测边界值)
- 方法名建议用下划线或驼峰表达意图,如
testAddWithNegativeNumbers或add_with_negative_inputs - 用
@BeforeEach初始化共享对象(如 new Calculator()),避免重复创建 - 用
@Disabled("暂不运行")临时跳过某个测试,而不是注释掉代码 - 测试类和被测类尽量放在同一包下(不同源目录),便于访问 default 访问级别的方法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










