@Test方法必须是public void无参非静态方法,且需正确导入JUnit 5依赖和注解,否则报错或被忽略。

在 Java 中,@Test 注解用于标记一个方法为单元测试方法,但必须满足几个关键约束,否则运行时会报错或被框架忽略。
方法签名必须是 public void 且无参数
被 @Test 标记的方法必须满足以下三点:
- 访问修饰符为 public(不能是 private、protected 或包私有)
- 返回类型为 void(不能是 int、String、boolean 等任意其他类型)
- 方法参数列表为空(不能有任何形参)
例如合法写法:
public void testAdd() { ... }以下写法均非法:
立即学习“Java免费学习笔记(深入)”;
private void testAdd() {...} // 报错:should be publicpublic int testAdd() {...} // 报错:should be void
public void testAdd(int a) {...} // 报错:should be void
不能是静态方法
JUnit 5(当前主流版本)要求 @Test 方法必须是非静态的。因为框架会在每次执行测试前创建测试类的新实例,再调用该实例的方法。
如果加了 static:
public static void testAdd() { ... } // 运行时报错:Method testAdd() should be void(实际因反射调用失败而中断)
内部类中的方法也不支持 @Test,即使满足签名要求——因为 JUnit 无法正确实例化非静态内部类。
需要正确导入和依赖
确保项目中已引入 JUnit 5 的依赖(如 Maven):
<dependency><groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
并在测试类顶部导入注解:
import org.junit.jupiter.api.Test;注意不要误用旧版 JUnit 4 的 org.junit.Test,两者包路径不同、行为也有差异。
IDE 中快速添加与运行
在 IntelliJ IDEA 中,将光标放在目标方法名上,按 Alt + Enter,选择 “Add ‘@Test’ annotation” 即可自动插入注解并补全 import;左侧会出现绿色小箭头,点击即可单独运行该测试方法。
成功运行显示绿色条,失败则为红色,并附带堆栈或断言失败信息。


















