Junit单元测试
测试分类:
- 黑盒测试:不需要关注代码,给定输入值,看程序是否能够输出期望的值
- 白盒测试:需要关注代码,关注程序的具体执行流程
Junit使用:白盒测试
步骤:
- 定义一个测试类(测试用例)
- 测试类名:被测试的类名Test,如CalculatorTest
- 包名:xxx.xxx.xx.test,如com.leoDolphin.test
- 定义测试方法:可以独立运行
-
方法名:test测试的方法名,如testAdd()
-
返回值:void
-
参数列表:空参
- 给方法加注解@Test
- 导入Junit的依赖环境
判断结果:
-
红色:失败
-
绿色:成功
-
一般我们会使用断言操作来处理结果
- Assert.assertEquals(期望的结果,运算的结果)
补充:
两个注解
- @Before:修饰的方法会在测试方法之前被自动执行
- @After:修饰的方法会在测试方法之后自动被执行(即便测试方法中测试出现异常)
package com.leoDolphin.junit;
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;
}
}
package com.leoDolphin.test;
import com.leoDolphin.junit.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
/**
* 初始化方法:
* 用于资源申请,所有测试方法在执行之前都会先执行该方法
*/
@Before
public void init(){
System.out.println("我是初始化!");
}
/**
* 释放资源的方法:
* 在所有测试方法执行完后,都会自动执行该方法(即便测试方式中出现异常)
*/
@After
public void close(){
System.out.println("我结束了!");
}
/**
* 测试add方法
*/
@Test
public void testAdd(){
System.out.println("我被执行了!");
//1.创建计算器对象
Calculator cclt = new Calculator();
//2.调用add方法
int result = cclt.add(1,2);
System.out.println(result);
//3.断言 我断言这个结果是3
Assert.assertEquals(3,result);
}
/**
* 测试sub方法
*/
@Test
public void testSub(){
//1.创建计算器对象
Calculator cclt = new Calculator();
//2.调用add方法
int result = cclt.sub(1,2);
System.out.println(result);
//3.断言 我断言这个结果是3
Assert.assertEquals(-1,result);
}
}