1.测试分类
1.1黑盒测试
不需要写程序验证,给程序输入其所需的数据,看程序是否能够正确输出期望的值。
1.2白盒测试
需要写程序验证,关注程序具体的执行流程顺序及其执行的结果。
2.Junit
Junit属于白盒测试,需要编写程序验证。
Junit的步骤:
- 定义一个测试类(测试用例)
建议:
测试类名:被测试的类名Test CalculatorTest
包名:xxx.xxx.xx.test cn.itcast.test - 给方法加@Test
- 定义测试方法:可以独立运行
建议:
方法名:test测试的方法名 testAdd()
返回值:void
参数列表:空参 - 导入junit依赖环境,并进行运行
判定结果:
红色:失败
绿色:成功
一般我们会使用断言操作来处理结果
Assert.assertEquals(期望的结果,运算的结果);
补充标签:
@Before:
修饰的方法会在测试方法之前被自动执行
@After:
修饰的方法会在测试方法执行之后自动被执行
3.示例代码
3.1程序的结构
3.2示例源码
被测试类calculater源码:
package use;
public class calculater {
/*
* 加法运算
*/
public int add(int a,int b) {
return a + b;
}
/*
* 减法运算
*/
public int sub(int a,int b) {
return a - b;
}
}
测试类Testcalculater源码:
package test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import use.calculater;
public class Testclacculater {
@Before //这是执行test标签前执行的标签,一般用于资源的初始化
public void setUp() throws Exception {
System.out.println("执行顺序1");
}
@After //这是执行完test标签后执行的标签,一般用于释放资源
public void tearDown() throws Exception {
System.out.println("执行顺序3");
}
@Test //测试标签必须添加,标明测试板块
public void addtest() {
System.out.println("执行顺序2,测试add方法");
//创建测试用的对象
calculater usetest = new calculater();
//调用需要测试的方法
int result = usetest.add(3, 2);
//使用Assert.assertEquals(预期的结果, 实际的结果);判断运行结果
//如出错会在外界显示,可以无需打印就能验证结果的正确性
Assert.assertEquals(5, result);
}
@Test
public void subtest() {
System.out.println("执行顺序2,测试sub方法");
calculater usetest = new calculater();
int result = usetest.sub(3, 2);
Assert.assertEquals(1, result);
}
}
3.3运行结果