Android 单元测试实践

本文介绍了Android单元测试的概念,详细讲解了如何使用JUnit进行测试,包括添加依赖、编写用例、注解、异步测试、Mock测试、参数化测试和异常测试。还探讨了单元测试的好处,如代码质量保证、高测试覆盖率,并提供了实际操作步骤和示例。
摘要由CSDN通过智能技术生成

什么是单元测试

定义:单元测试就是针对最小的功能单元编写测试代码

Java程序最小的功能单元是方法,因此,对Java程序进行单元测试就是针对单个Java方法的测试。

什么是JUnit

JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计,使用最广泛。JUnit是事实上的单元测试的标准框架,任何Java开发者都应当学习并使用JUnit编写单元测试。

使用JUnit编写单元测试的好处在于:

  • 非常简单地组织测试代码,并随时运行它们
  • JUnit会给出成功的测试和失败的测试,还可以生成测试报告
  • 不仅包含测试的成功率,还可以统计测试的代码覆盖率,即被测试的代码本身有多少经过了测试。
  • 几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试

对于高质量的代码来说,测试覆盖率应该在80%以上。

单元测试的好处

  • 单元测试可以确保单个方法按照正确预期运行。如果修改了某个方法的代码,只需确保其对应的单元测试通过,即可认为改动正确。
  • 测试代码本身就可以作为示例代码,用来演示如何调用该方法

在编写单元测试的时候,我们要遵循一定的规范:

  • 单元测试代码本身必须非常简单,能一下看明白,决不能再为测试代码编写测试;
  • 每个单元测试应当互相独立,不依赖运行的顺序;
  • 测试时不但要覆盖常用测试用例,还要特别注意测试边界条件,例如输入为0,null,空字符串""等情况。

线上更多暴露的都是异常场景,所以在单元测试中有必要重点验证相关异常逻辑。

如何编写单元测试

添加依赖

新建Android项目中app模块的build.gradle中会自动添加如下依赖:

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
  • testImplementation :表示Junit单元测试依赖,对应的是test目录
  • androidTestImplementation :表示Android集成测试,对应的是androidTest目录

在写单元测试的时候,有些对象在运行时是没有真实构造的,这个时候我们可以使用mock框架来模拟出一个可用的对象,需要添加如下依赖:

testImplementation 'org.mockito:mockito-core:2.19.0'

添加用例

首先添加一个测试类,这里我添加一个简单的计算类:

public class Calculate {

    private int mValue;

    //+1
    public int addOne() {
        return ++mValue;
    }

    //-1
    public int reduceOne() {
        return --mValue;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值