IDEA 快速测试 Java 方法

作为 Java 后端开发实习生,快速测试方法是日常开发的核心技能。本教程从简单临时测试企业级单元测试,覆盖 IDEA 中 4 种主流测试方式,结合 Spring Boot 场景,每步附操作指引和避坑提示,新手可直接对照操作。


一、前置说明:4 种测试方式的适用场景

先根据需求选对方式,避免浪费时间:

测试方式适用场景优点缺点
直接运行 main 方法简单工具类、无依赖的静态方法快速验证无需额外依赖,操作最快不适合有 Spring 依赖的业务方法
JUnit 单元测试(推荐)正式业务方法、有依赖的方法(Spring 等)可复用、可自动化、企业主流需要加 JUnit 依赖
Scratch 文件(临时)临时试一段代码、不影响项目文件无需创建类 / 方法,用完即丢无法保存到项目,仅临时使用
调试模式(Debug)方法逻辑复杂,需要看中间变量 / 执行流程可逐行执行,精准定位问题操作稍复杂,适合排查 bug

二、方式 1:直接运行 main 方法(最快,适合无依赖的简单方法)

如果测试的是静态方法(比如工具类的字符串处理、数学计算),直接在类里加个 main 方法,调用目标方法即可。

详细步骤

  1. 打开目标类:找到要测试的方法所在的类(比如 StringUtil.java)。
  2. 添加 main 方法:在类中输入 psvm,按 IDEA 的自动补全快捷键(Tab/Enter),快速生成 main 方法模板。
    public class StringUtil {
        // 目标方法:判断字符串是否为空
        public static boolean isEmpty(String str) {
            return str == null || str.trim().isEmpty();
        }
    
        // 快速生成的 main 方法
        public static void main(String[] args) {
            // 3. 调用目标方法,传入测试参数
            boolean result1 = isEmpty(null);
            boolean result2 = isEmpty("hello");
            // 4. 打印结果验证
            System.out.println("测试null:" + result1); // 预期true
            System.out.println("测试hello:" + result2); // 预期false
        }
    }
    
  3. 运行 main 方法:点击 main 方法左侧的绿色小箭头,选择「Run 'StringUtil.main ()'」;或右键 main 方法,选择「Run 'main ()'」。
  4. 查看结果:IDEA 底部「Run」窗口会显示打印的结果,验证是否符合预期。

避坑提示

  • 仅适合无外部依赖的静态方法(比如不需要连接数据库、不需要 Spring 注入的方法);
  • 测试完后,若不需要 main 方法,建议删除(避免提交到代码库)。

三、方式 2:JUnit 单元测试(企业主流,推荐)

JUnit 是 Java 单元测试的标准框架,IDEA 原生支持,可快速生成测试类,适合测试有依赖的业务方法(比如 Spring Boot 的 Service 层方法)。

前置准备:添加 JUnit 依赖

如果是 Spring Boot 项目,spring-boot-starter-test 已经包含 JUnit5(无需额外加);如果是普通 Java 项目,在 pom.xml 中添加:

<!-- JUnit5 依赖(Maven) -->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.9.2</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.9.2</version>
    <scope>test</scope>
</dependency>

详细步骤(以 Spring Boot Service 层方法为例)

假设要测试的是 UserService.java 中的 getUserById(Long id) 方法:

1. 快速生成 JUnit 测试类
  • 打开 UserService.java,在类名上右键 → 选择「Generate」(或按快捷键 Alt + Insert);
  • 在弹出的菜单中选择「Test」;
  • 配置测试类:
    • Testing library:选择 JUnit5(Spring Boot 项目默认);
    • Class name:自动生成 UserServiceTest(无需改);
    • Destination package:自动对应到 src/test/java 下的同包路径(无需改);
    • Member:勾选要测试的方法(比如 getUserById);
  • 点击「OK」,IDEA 会自动在 src/test/java 下生成测试类。
2. 编写测试代码(Spring Boot 场景)

生成的测试类默认是空的,需补充 Spring 注解和测试逻辑:

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

// 必须加@SpringBootTest:启动Spring容器,才能注入依赖
@SpringBootTest
class UserServiceTest {
    // 注入要测试的Service
    @Autowired
    private UserService userService;

    // 测试方法:加@Test注解
    @Test
    void getUserById() {
        // 调用目标方法,传入测试参数
        User user = userService.getUserById(1L);
        // 验证结果:用Assertions(JUnit5自带)
        org.junit.jupiter.api.Assertions.assertNotNull(user); // 断言user不为空
        org.junit.jupiter.api.Assertions.assertEquals("张三", user.getName()); // 断言name是张三
        // 也可以打印结果辅助验证
        System.out.println("查询到的用户:" + user);
    }
}
3. 运行测试方法
  • 点击测试方法左侧的绿色小箭头,选择「Run 'getUserById ()'」;
  • 或右键测试类,选择「Run 'UserServiceTest'」(运行类中所有测试方法);
  • 查看结果:IDEA 底部「Run」窗口会显示绿色对勾(测试通过)或红色叉号(测试失败),失败时会显示具体错误原因。

避坑提示

  • Spring Boot 测试必须加 @SpringBootTest,否则无法注入依赖;
  • 测试类和测试方法的访问权限必须是 public(JUnit5 也支持 package-private,但建议用 public);
  • 测试方法不要有返回值,必须是 void
  • 优先用 Assertions 断言验证结果,而不是只打印(断言失败会直接标记测试不通过)。

四、方式 3:Scratch 文件(临时试代码,用完即丢)

如果只是想临时试一段代码(比如测试一个正则表达式、一个日期格式化),不想创建新的类 / 方法,用 IDEA 的 Scratch 文件 最合适。

详细步骤

  1. 快速打开 Scratch 文件:按快捷键 Ctrl + Shift + Alt + Insert(Windows)/ Cmd + Shift + Opt + Insert(Mac);
  2. 选择文件类型:在弹出的菜单中选择「Java」(或其他语言,比如 SQL、JSON);
  3. 编写测试代码:在生成的 Scratch 文件中直接写代码(可以写 main 方法,也可以写简单的逻辑):
    // Scratch 文件示例:测试日期格式化
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    
    public class Scratch {
        public static void main(String[] args) {
            LocalDateTime now = LocalDateTime.now();
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String formatTime = formatter.format(now);
            System.out.println("格式化后的时间:" + formatTime);
        }
    }
    
  4. 运行代码:点击 main 方法左侧的绿色箭头运行,查看结果;
  5. 关闭 Scratch 文件:测试完后直接关闭,无需保存(若想保存,可右键文件选择「Save Scratch File」)。

避坑提示

  • Scratch 文件默认保存在 IDEA 的缓存中,关闭后不会自动保存到项目;
  • 适合临时验证小逻辑,不适合写正式测试代码。

五、方式 4:调试模式(Debug)测试(适合复杂逻辑)

如果方法逻辑复杂,需要看中间变量的值执行流程(比如循环了几次、if 走了哪个分支),用 Debug 模式测试最合适。

详细步骤

  1. 打断点:在目标方法的代码行号左侧点击(会出现一个红色圆点),比如在 userService.getUserById(1L) 这一行打断点;
  2. 启动 Debug 模式:点击方法左侧的绿色小箭头,选择「Debug 'getUserById ()'」(或右键选择「Debug」);
  3. 逐行执行:IDEA 会停在断点处,底部「Debug」窗口会显示当前的变量值,用以下快捷键控制执行:
    • F8(Step Over):逐行执行,不进入方法内部;
    • F7(Step Into):进入当前行的方法内部(比如进入 getUserById 方法);
    • F9(Resume):跳到下一个断点,没有断点则直接执行完;
    • Shift + F8(Step Out):跳出当前方法,回到调用处;
  4. 查看变量:「Debug」窗口的「Variables」标签会显示当前所有变量的值,也可以选中代码中的变量,右键选择「Evaluate Expression」临时计算变量值;
  5. 结束 Debug:点击「Debug」窗口的红色方块按钮,或按 Ctrl + F2

避坑提示

  • 断点不要打在空行或注释上,否则不会生效;
  • 若 Debug 模式启动慢,可检查是否有太多断点(暂时禁用不需要的断点)。

六、总结:新手快速选择指南

  1. 简单静态方法 → 用 main 方法(最快);
  2. 正式业务方法(有依赖) → 用 JUnit 单元测试(企业主流);
  3. 临时试小逻辑 → 用 Scratch 文件(用完即丢);
  4. 复杂逻辑需要看中间变量 → 用 Debug 模式(精准定位问题)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值