1、什么是单元测试
在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。简单来说,就是测试数据的稳定性是否达到程序的预期。
2、单元测试的步骤
2.1引入Junit jar包
在pom.xml中引入Junit包:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
2.2、在test中按照src路径创建service包
注意:
类名: 定义测试类,类名是由被测试类名Test构成。例如:MathServiceTest。
包名: 定义的测试类需要放在xxx.xxx.xxx.test包中。例如:package com.wenjian.test;
方法名: 测试方法的方法名有两种定义方式test测试方法和测试方法。例如:testSum和sum
返回值/参数列表: 不需要处理任何返回值,所以这里使用void。例如:public void testSum()
@Test注解: @Test注解非常重要,被这个注解标注的方法就是一个单元测试方法
IDEA快捷导入Junit4、5: 使用IDEA的小伙伴,你们的福音来了。我们可以先创建测试类和方法,然后在测试方法上方加入@Test注解,此时IDEA显示的@Test注解是飘红的,这时候我们使用Alt + Enter组合键来打开导入Junit单元测试列表,然后再选择Junit4或者Junit5确定即可导入成功!这时候再查看注解就没有飘红了!
2.3、运行单元测试
采用Assert.assertEquals(预期值, 结果);
package com.wenjian.junit.service;
import org.junit.Assert;
import org.junit.Test;
/**
* 单元测试类
* @author 小白
* @version 1.0
* @since 1.0
*/
public class MathServiceTest { //名字规范:测试的类名+Test
//单元测试方法一般是一个业务方法对应一个测试方法
//测试方法格式:public void testXxxx(){}
//测试方法的方法名:test+方法名;例如:testSum
//@Test注解非常重要,被这个注解标注的方法就是一个单元测试方法。
@Test
public void testSum(){
//实际值:被测试的业务方法的真正执行结果
//期望值:执行了这个业务方法之后,你期望的执行结果是多少
MathService mathService = new MathService();
//获取实际值
int actual = mathService.sum(1, 2);
//期望值
int expected = 3;
//加断言进行测试
Assert.assertEquals(expected,actual);
}
}
运行结果:
(1)控制台是绿色的说明程序没有问题
(2)控制台变为了红色,并给出来报错信息。这证明了我们的程序测试后出现了问题。