在IntelliJ IDEA中一键生成JUnit5测试类需按Ctrl+Shift+T(Windows/Linux)或⌘⇧T(macOS),光标置于类名上,前提为正确配置JUnit5依赖、标记test目录为Test Sources Root,并在Settings中将Testing library设为JUnit5。

IntelliJ IDEA 里怎么一键生成 JUnit5 测试类
直接按 Ctrl+Shift+T(Windows/Linux)或 ⌘⇧T(macOS),光标放在目标类名上,IDEA 就会弹出菜单让你创建对应测试类。前提是项目已正确引入 JUnit5 依赖,且测试目录结构被识别为 Test Sources Root。
常见错误现象:Ctrl+Shift+T 没反应、弹出“Nothing to create”、生成的类用的是 JUnit4 的 @Test 注解。
- 检查
src/test/java是否被标记为 Test Sources Root(右键目录 → Mark as Test Sources) - 确认
pom.xml或build.gradle中引入的是 JUnit5(junit-jupiter),不是junit-vintage-engine或旧版junit - IDEA 默认模板可能仍设为 JUnit4:进
Settings → Tools → Java → Testing → Testing library,选JUnit5
JUnit5 依赖怎么配才不会和 IDEA 冲突
IDEA 自带的测试运行器对依赖版本敏感,用错坐标或 scope 容易导致 ClassNotFoundException: org.junit.jupiter.api.Test 或测试类无法被识别为可运行项。
使用场景:Maven 项目,JDK ≥ 11,IDEA 2022.3 及以上
- Maven 中必须用
junit-jupiter,不要只写junit:<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.10.2</version> <scope>test</scope> </dependency>
-
scope必须是test,否则编译主代码时会意外引入测试 API - 如果用了 Spring Boot,优先用
spring-boot-starter-test,它默认包含junit-jupiter,但要确认其传递依赖版本 ≥ 5.9
生成的测试类里为什么没有 @ExtendWith(MockitoExtension.class)
因为 IDEA 默认模板不自动加 Mockito 支持——它只管 JUnit5 基础结构。你得手动加,或改模板。
参数差异:@ExtendWith 是 JUnit5 的扩展机制入口,而 Mockito 3.4.0+ 才原生支持 JUnit5 Extension;旧版需搭配 mockito-junit-jupiter
- 若要用
@Mock/@InjectMocks,必须显式添加:@ExtendWith(MockitoExtension.class) class MyServiceTest { ... } - 对应依赖不能漏:
mockito-junit-jupiter(注意不是mockito-core单独引入) - IDEA 模板可自定义:进
Settings → Editor → File and Code Templates → Code → JUnit5 Test Class,在类声明前插入@ExtendWith(MockitoExtension.class)
测试类生成后运行报错 “No tests found”
不是代码问题,大概率是 IDEA 没把测试方法识别为可执行测试项,根源常在方法签名或注解上。
性能 / 兼容性影响:JUnit5 要求测试方法必须是 public(或 package-private,但 IDEA 有时不认)、无返回值、无参数、带 @Test;用 private 或 static 直接失效。
- 检查方法声明是否为
void methodName(),不是void methodName(String s)(参数化测试除外) - 确认导入的是
org.junit.jupiter.api.Test,不是org.junit.Test(后者是 JUnit4) - 如果类名/方法名含中文或特殊符号,某些 IDEA 版本会跳过扫描,建议全英文命名
- 右键运行时,点的是类名还是方法名?点类名要求至少一个
@Test方法存在,否则提示空
最常被忽略的一点:生成测试类后,IDEA 不会自动重载 Maven 依赖变更。改完 pom.xml 后,务必点右上角 Maven → Reload project,否则新依赖进不了 classpath,所有注解都像“不存在”。










