言成言成啊 | Kit Chen's Blog

java使用Junit单元测试

一、测试分类

  1. 黑盒测试:不需要写入代码,给输入值,看程序是否能够输出期望的值。
  2. 白盒测试:需要写代码。关注程序的具体执行过程。像Junit就是白盒测试的一种。

黑盒测试比较简单,一般现在市面上很多的测试,都是黑盒测试。

当然,如果选择做测试之类的工作的话,我还是希望做白盒测试了。多写代码,对身体有益,奥利给!

二、Junit使用:白盒测试

背景

如果想要测试一下计算器的运算结果对不对,以往,我会这样写,先定义一个Calculator类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
* 计算器类
*/
public class Calculator {
/**
* 加法
* @param a
* @param b
* @return
*/
public int add(int a,int b) {
return a+b;
}
/**
* 减法
* @param a
* @param b
* @return
*/
public int sub(int a,int b) {
return a-b;
}

}

再定义一个测试类:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class CalculatorTest {
public static void main(String[] args) {
//创建对象
Calculator c=new Calculator();
//调用
// int result=c.add(1,2);
// System.out.println(result);
//如果我现在又想测试减法,那还得再写一个
int result=c.sub(1, 2);
System.out.println(result);

}
}

看上面代码就知道了,我测试完了加法,又想测试减法,只能重新再写一次,很麻烦。

所以我们可以通过Junit进行单元测试,免除这些复杂的步骤。

使用Junit

步骤:

  1. 定义一个测试类(测试用例)
    测试类名:被测试的类名Test,如CalculatorTest
    包名:xxx.xxx.xxx.test,如top.meethigher.test
  2. 定义测试方法:可以独立运行
    方法名:test测试的方法名,如testAdd()
    返回值:void
    参数列表:空参
  3. 给方法加注解@Test
  4. 导入Junit的依赖环境

Junit 5跟Junit 4的比较

判定结果:

  • 红色代表失败
  • 绿色代表成功
  • 一般我们使用断言操作来处理结果,Assert.assertEquals(expected,actuals)

补充:

@BeforeEach:修饰的方法,会在测试方法执行之前执行

@AfterEach:修饰的方法,会在测试方法执行之后执行

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class CalculatorTest {
/**
* 初始化方法
* 用于资源的申请,所有的测试方法都会执行该方法
*/
@BeforeEach
public void init() {
System.out.println("init...");
}
/*
* 释放资源方法
* 在所有测试方法执行完后,都会自动执行该方法
*/
@AfterEach
public void close() {
System.out.println("close...");
}
/**
* 测试add方法
*/
@Test
public void testAdd() {
//1.创建计算器对象
Calculator c=new Calculator();
//2.调用add方法
int result=c.add(1, 2);
// System.out.println(result);
//3.断言,我断言这个结果是3,如果是一样的就是绿色,如果不一样就是红色
Assert.assertEquals(3, result);
System.out.println("加法测试");
}
/**
* 测试sub方法
*/
@Test
public void testSub() {
Calculator c=new Calculator();
int result=c.sub(2, 2);
Assert.assertEquals(0, result);
System.out.println("减法测试");
}
}
最后修改:2020-04-21 15:06:32
原文链接:https://meethigher.top/blog/2020/unit-test/
付款码 捐助 分享
翻墙之后才能评论哦
阅读量