Junit单元测试
一、Junit概述
(1)测试分类
- 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
- 白盒测试:需要写代码的。关注程序具体的执行流程。
(2)Junit使用:白盒测试
①未使用Junit时
未使用Junit时,测试就是将所有方法调用一遍,这样测试虽然也可得到结果,但也存在很多缺点
②使用Junit时
- 步骤:
- 定义一个测试类(测试用例)
- 建议
测试类名:被测试的类名Test CalculatorTest
包名:xxx.xxx.xx.test
- 定义测试方法:可以独立运行
- 建议
方法名:test测试的方法名 testAdd()
返回值:void
参数列表:空参
- 给方法加@Test
- 导入junit依赖环境
判定结果:
红色:失败
绿色:成功
一般我们会使用断言操作来处理结果
Assert.assertEquals(期望的结果,运算的结果);
断言成功:
断言失败:
(3)案例完整实现
二、补充@Before与@After
(1)@Before
修饰的方法会在测试方法之前被自动执行
(2)@After
修饰的方法会在测试方法执行之后自动被执行
(3)案例展示
/**
* 计算器类
*/
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;
}
public static class CalculatorTest {
}
}
public class CaculatorTest {
/**
* 初始化方法:用于资源申请,所有测试方法在执行之前都会先执行该方法
*/
@Before
public void init(){
System.out.println("初始化方法init执行~");
}
@After
/**
* 释放资源方法:在所有测试方法执行完后,都会自动执行该方法
*/
public void close(){
System.out.println("释放资源方法close执行~");
}
/**
* 测试add
*/
@Test
public void testAdd(){
System.out.println("testAdd被执行啦~");
//1.创建计算机对象
Calculator c = new Calculator();
//2.调用add方法
int result = c.add(1,2);
//System.out.println(result);//程序运行成功
//3.断言:我断定正确的预期结果是
//Assert.assertEquals(预期值,实际值);
Assert.assertEquals(3,result);
}
/**
* 测试add
*/
@Test
public void testSub(){
System.out.println("testSub被执行啦~");
//1.创建计算机对象
Calculator c = new Calculator();
//2.调用add方法
int result = c.sub(2,1);
//3.断言:我断定正确的预期结果是
//Assert.assertEquals(预期值,实际值);
Assert.assertEquals(1,result);
}
}