一、Junit单元测试
- 测试分类:
1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
2. 白盒测试:需要写代码的,关注程序具体的执行流程。 - Junit使用:白盒测试
- 步骤:
-
定义一个测试类(测试用例)
建议:- 测试类名:被测试的类名Test CalculatorTest
- 包名:xxx.xxx.xx.test cn.itcast.test
-
定义测试方法:可以独立运行
建议:- 方法名:test测试的方法名 testAdd()
- 返回值:void
- 参数列表:空参
- 一般我们会使用断言操作来处理结果
* Assert.assertEquals(期望的结果,运算的结果);
-
给方法加@Test注解
-
导入junit依赖环境JUnit4
- 补充:
- @Before:
* 修饰的方法会在测试方法之前被自动执行,用于资源申请 - @After:
* 修饰的方法会在测试方法执行之后自动被执行,用于释放资源
- @Before:
//计算器类
public class Calculator {
public int add(int a,int b){
return a-b;
}
public int sub(int a,int b){
return a-b;
}
}
----------------------------------------------------
/*
单元测试类
*/
public class CalculatorTest {
/*
@Before
初始化方法
用于资源申请,所有测试方法在执行之前都会执行该方法
*/
@Before
public void init(){
System.out.println("init...");
}
/*
@After
释放资源的方法
在所有测试方法执行完,都会自动执行该方法
及时测试方法出现异常,依然执行该方法释放资源
*/
@After
public void close(){
System.out.println("close...");
}
//测试add方法
//需要导入Junit的依赖,加注解是为了让方法独立运行
@Test
public void testAdd(){
// System.out.println("我被执行啦!");
System.out.println("testadd...");
//1 创建计算器对象
Calculator c = new Calculator();
//2 调用add
int result = c.add(1, 2);
// System.out.println(result); //3
//3 断言 我断言结果是3,会把断言结果和真正结果比较
//我期望是3,真实值是result
Assert.assertEquals(3,result); //failNotEquals,因为我的类add写错了,导致抛出异常
}
@Test
public void testSub(){
Calculator c = new Calculator();
int result = c.sub(1, 2);
System.out.println("test...");
Assert.assertEquals(-1,result); //成功,无输出
}
}