0. 背景
测试分为白盒测试和黑盒测试:
1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
2. 白盒测试:需要写代码。关注程序具体的执行流程。
3. Junit是白盒测试
小技巧:ctrl + alt + L 自动调整空白格等代码格式
1. 不使用@test注解进行的测试
1.1 新建Calculator类
有两个成员方法:加 和 减
package junit;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
}
1.2 新建CalculatorTest类
如果单看输出,一次只能测试一个方法,有一个返回值
测试加法
package test;
import junit.Calculator;
public class CalculatorTest {
public static void main(String[] args) {
//创建对象
Calculator c = new Calculator();
//调用方法
int result = c.add(1, 2);
System.out.println(result);
}
}
测试减法
package test;
import junit.Calculator;
public class CalculatorTest {
public static void main(String[] args) {
//创建对象
Calculator c = new Calculator();
//调用方法
int result = c.sub(1, 2);
System.out.println(result);
}
}
3. Junit的使用步骤
1. 定义一个测试类(测试用例)
测试类名:
- 被测试的类名Test CalculatorTest
- 包名:xxx.xxx.xx.test junit.test
2. 定义测试方法:可以独立运行
- 方法名:test测试的方法名 testAdd()
- 返回值:void
- 参数列表:空参
3. 给方法加@Test
4. 导入junit依赖环境
** 判定结果:**
红色:失败
绿色:成功
一般使用断言操作来处理结果
* Assert.assertEquals(期望的结果,运算的结果);
* 补充:
* @Before:
* 修饰的方法会在测试方法之前被自动执行
* @After:
* 修饰的方法会在测试方法执行之后自动被执行
4.@Test注解使用
新建test包,在包中新建CalculatorTest类
package test;
import junit.Calculator;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd(){
System.out.println("执行testAdd方法");
//创建对象
Calculator c = new Calculator();
//调用方法
int result = c.add(1, 2);
System.out.println(result);
}
}
点击图中的按钮运行测试
测试结果如下:
绿色代表成功运行,红色代表失败
将类修改如下:
public class Calculator {
public int add(int a, int b) {
int i = 3 / 0;
return a + b;
}
public int sub(int a, int b) {
return a - b;
}
}
在使用过程中不看结果,只看红色绿色,所以一般不输出,只断言来判断输出结果是否真的正确
将类修改如下,制造错误
package junit;
public class Calculator {
public int add(int a, int b) {
return a - b;
}
public int sub(int a, int b) {
return a - b;
}
}
测试类修改如下,添加断言:
package test;
import junit.Calculator;
import org.junit.Assert;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd(){
System.out.println("执行testAdd方法");
//创建对象
Calculator c = new Calculator();
//调用方法
int result = c.add(1, 2);
//System.out.println(result);
Assert.assertEquals(3,result);
}
}
结果如下: