✅ JUnit 单元测试(Java)

JUnit 是 Java 中最常用的单元测试框架,用于对 Java 方法的功能进行自动化测试,提高开发效率和代码质量。


✅ 基本概念

名称 说明
单元测试(Unit Test) 针对程序中最小功能单元(如方法)进行的测试
JUnit Java 编程语言的单元测试框架,目前主流版本为 JUnit 4 和 JUnit 5
测试用例 编写好的测试方法,用来验证业务方法是否正确
断言(assert) 检查预期结果和实际结果是否一致,决定测试是否通过

✅ JUnit 测试的基本步骤

1️⃣ 添加 JUnit 依赖(以 JUnit 4 为例)

👉 如果你是使用 Maven 的项目:

1
2
3
4
5
6
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>

2️⃣ 编写待测试的代码(业务类)

1
2
3
4
5
6
7
8
9
public class Calculator {
public int add(int a, int b) {
return a + b;
}

public int sub(int a, int b) {
return a - b;
}
}

3️⃣ 编写测试类(测试用例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import org.junit.Test;
import static org.junit.Assert.*;

public class CalculatorTest {

@Test // 标记这是一个测试方法
public void testAdd() {
Calculator c = new Calculator();
int result = c.add(10, 20);
assertEquals(30, result); // 断言判断:预期值 vs 实际值
}

@Test
public void testSub() {
Calculator c = new Calculator();
int result = c.sub(10, 5);
assertEquals(5, result);
}
}

✅ 常用断言方法(assert)

方法名 说明
assertEquals(a, b) 判断两个值是否相等
assertTrue(condition) 判断条件为 true
assertFalse(condition) 判断条件为 false
assertNull(obj) 判断对象为 null
assertNotNull(obj) 判断对象不为 null

✅ 测试运行结果说明

  • 绿色条:测试通过
  • 红色条:测试失败,断言不成立或抛出异常
  • 报错信息会指出是哪个测试方法失败,并显示期望值和实际值

✅ 小贴士

  • JUnit 测试类通常和被测试类放在不同的目录中(如 src/main/javasrc/test/java
  • 每个测试方法都应该是 public void,并用 @Test 注解标记
  • 测试方法名最好有描述性,如 testAddWithPositiveNumbers