Junit单元测试

一、测试的分类:

  1. 黑盒测试:不需要写代码,只需要指定输入的值,然后观察输出的值是否符合预期,不关注代码执行的过程
  2. 白盒测试:需要写代码,要测试人员关注具体的执行流程

而Junit单元测试就是白盒测试的一种

二、Junit单元测试的使用步骤

1、定义一个测试类(也称之为测试用例)

建议:
① 测试类的名字格式为:被测试的类名Test,例如SunTest
② 包名称的格式为:xxx.xxx.xx.test

2、定义测试方法:这个测试方法是可以独立运行的,不需要借助main方法

建议:
① 方法名的格式为:test测试的方法名
② 返回值:void (因为我们不需要测试方法返回什么值,我们也不需要传入什么参数)
③ 参数列表:空参

3、给方法加@Test

4、导入JUnit的环境依赖(alt+enter)

举例示范

需要测试的类:

public class Calculator {
    public int add(int a, int b){
        return a + b;
    }
}

测试类:

public class CalculatorTest {
    @org.junit.Test
    public void testAdd(){
//        创建计算器对象
        Calculator c = new Calculator();
//        调用add方法
        int result = c.add(1, 2);
//        断言(就是我期望这个结果是多少),通过Assert打点调用判断结果和期望结果是否相等
        Assert.assertEquals(3, result);
    }
}

判断结果

① 绿色的结果代表成功

在这里插入图片描述

② 红色的结果代表失败

如果被测试类的内容为

public class Calculator {
    public int add(int a, int b){
        int c = 10/0;
        return a + b;
    }
}

那么测试结果就为
在这里插入图片描述

③ 我们一般会使用断言操作来处理结果

例如:Assert.assertEquals(期望的结果,运算的结果);
通过这种方法来判断期望的结果和运算的结果是否相同,从而达到判断程序是否出现异常

三、Junit的Before注解和After注解

1、@Before:被该注解修饰的方法在测试方法执行之前会被自动执行
2、@After:被该注解修饰的方法在测试方法执行之后自动被执行,无论测试方法是否出现异常,都会执行

举例示范:

需要测试的类:

public class Calculator{
    public static int add(int a, int b){
        int c = 10 / 0;
        return a + b;
    }
}

测试类如下

public class CalculatorTest {
    @Before
    public void init(){
        System.out.println("被@Before修饰的方法执行成功!");
    }
    @Test
    public void testAdd(){
//        创建计算器对象
        Calculator c = new Calculator();
//        调用add方法
        System.out.println("testAdd测试类中,调用add方法前成功执行");
        int result = c.add(1, 2);
//        断言(就是我期望这个结果是多少),通过Assert打点调用判断结果和期望结果是否相等
        System.out.println("testAdd测试类中,调用add方法后成功执行");
        Assert.assertEquals(3, result);
    }
    @After
    public void close(){
        System.out.println("被@After修饰的方法成功执行!");
    }
}

运行testAdd测试方法的结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值