Junit自动单元测试以及测试覆盖率简单使用

前言

众所周知,测试对于一个工程而言是至关重要的,而现在绝大多数团队都配有专门的测试人员来使用各种工具进行专业的测试,这里介绍的Junit的更多是作为开发同学在开发过程或最后提供自测的工具,使用起来非常方便,并且可以提供出测试覆盖率,以及具体没有覆盖的代码。
下面还是使用Idea做为演示IDE,使用Eclipse或者其他IDE的同学请自行搜索搭建方式,应该都是大同小异。
这里网上有很多详细的使用方法,是作为Junit框架来讲解的,看起来是更适合于测试同学,对我来说,只希望使用Junit来做简单的关键方法的自测,所以比较随意。

环境准备

依赖:

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

用法

假如你想测试Account类中扣款方法pay()有没有正常执行。
Account:

public class Account {
    private int balance;
    public Boolean pay(int money){
        if(balance >= money) {
            balance -= money;
            return true;
        }else
            return  false;
    }
    public void charge(int money){
        this.balance += money;
    }

    public int getBalance() {
        return balance;
    }
}

在测试路径下(建议将测试类单独放在测试的包路径下)新建一个测试类,测试类可以这么写:

public class AccountTest {
    private Account account = new Account();
    //@Test就是Junit测试的注解
    @Test
    public void testAccount(){
        //Assert.assertEquals前面为期望值,后面为实际值,用来验证数据是否符合预期
        Assert.assertEquals(0,account.getBalance());
        account.charge(100);
        Assert.assertEquals(100,account.getBalance());
        Assert.assertEquals(true,account.pay(20));
        Assert.assertEquals(80,account.getBalance());
        Assert.assertEquals(false,account.pay(100));
    }
}

然后不需要main函数可以直接运行:
这里写图片描述
如果是绿色没有报错就代表测试通过
这里写图片描述

批量测试以及测试覆盖率

Idea右上角的Edit Configurations
这里写图片描述

新建一个Junit测试,Test kind可以选择类,还是整个包路径,我这里选了整个包,然后选好工程。
这里写图片描述
然后在Code Coverager选项卡,。Tracin模式会增加消耗,但测量会更精确。然后添加测试类想要覆盖的被测试代码路径
这里写图片描述
都配置好后,通过右上角的Run With Coverage来运行
这里写图片描述
结果如下:
这里写图片描述
右边会出现测试覆盖率的结果,类左边的颜色代表了测试结果,没有被测试覆盖到的代码都将高亮显示为红色,覆盖的代码颜色则是绿色,如果一些代码是只覆盖部分,那没将显示为黄色。
这里写图片描述

总结

通过自动化Junit单元测试,可以让开发更好的完成自测,提高代码质量,也让项目流程推进更加清晰快速,希望大家都养成写单元测试的习惯。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值