Java Junit 单元测试

Junit 是一个 Java 语言的单元测试框架。

一、什么是 Junit?

Junit 是一个 Java 语言的单元测试框架。多数 Java 的开发环境都已经集成了 Junit 作为单元测试的工具。

Junit 测试属于白盒测试,测试员需要关注程序的具体执行流程。

二、Junit 的使用

  • 导入 Junit 依赖环境

    1
    import org.junit.Test
  • 定义测试类

    包名:xxx.xxx.xxx.test

    类名:被测试类名Test

  • 定义测试方法

    注解:@Test

    修饰符:public

    返回值:void

    方法名:test被测试方法名

    参数列表:

  • 在测试方法中调用需要被测试的方法,获取其结果,并使用断言指定正确的结果

三、示例

被测试方法:

1
2
3
4
5
6
7
8
9
10
11
public class Computer {
// 正确方法
public int add(int a, int b) {
return a + b;
}

// 错误方法
public int sub(int a, int b) {
return a + b;
}
}

测试方法:

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

public class ComputerTest {
@Test
public void testAdd() {
Computer computer = new Computer();
int result = computer.add(3, 5);
assert result == 8;
}

@Test
public void testSub() {
Computer computer = new Computer();
int result = computer.sub(5, 3);
assert result == 2;
}
}

结果:

四、@Before 和 @After

@Before 注解的方法将会在每个测试方法执行前执行,常用于资源的初始化;

@After 注解的方法将会在每个测试方法执行后执行,常用于资源的回收。

被测试方法:

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

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

测试方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class ComputerTest {
@Before
public void before() {
System.out.println("测试开始");
}
@After
public void after() {
System.out.println("测试结束");
}
@Test
public void testAdd() {
Computer computer = new Computer();
int result = computer.add(3, 5);
assert result == 8;
}

@Test
public void testSub() {
Computer computer = new Computer();
int result = computer.sub(5, 3);
assert result == 2;
}
}

结果:

参考