Android 单元测试接入指南

img

基本介绍

定义

单元测试是验证 指定输⼊ 的 实际结果 是否与 预期结果 匹配的测试。

接入单元测试的目的

单元测试的好处

  • 提升代码的稳定性,保证代码的逻辑和边界均可覆盖

  • 自动化测试,利于自测与重构测试

  • 促进代码设计,让代码有明确的输入输出、各个层级间功能清晰

单元测试的问题点

  • 部分情况会导致总开发时间更长

  • 功能更新,单元测试代码必须同步更新

核心概念

  • 主体:通常为公共类的 public 方法,也即业务流程中的一个流程节点;

  • 目的:验证流程节点的处理结果是否与预期结果匹配;

  • 关注点:指定输入、预期结果、实际结果,不应关注测试对象任何内部流程任何内部细节

  • 用例个数:需覆盖输入与输出产生绝大部分的组合,并非一个测试主体一个用例的简单对应关系

输入集、预期结果

  • 输入集:测试主体所有可能的输入集合类型,囊括正常输入、异常输入。输入集中多数输入在第一次编写流程节点的单元测试代码时确立,少数(多为异常输入)在后续迭代中伴随故障的产生而补充入输入集;

  • 预期结果:将预设的输入在 特定场景 下输入到流程节点后,期望得到的结果。预期结果可能是状态、单个行为、行为链,原则上预期结果不会是私有的状态、行为(private方法调用)。

  • 原则:输入与预期结果一一对应,有输入必有结果反馈;(这也就反射要求代码设计让有明确的分层和输入输出)

测试分类

按照预期结果的种类,可将单元测试分为两大类:

  • 状态测试:预期结果多为返回值、测试主体所在类暴露在外的成员变量。

  • 行为测试:预期结果多为特定行为(链),具体来说是其他 public 方法的调用:

    • 内部行为:为了防止内部嵌套测试的出现,对 public 做单元测试时方法内部其他的public方法,亦可作为预期结果;
    • 异常行为:异常输入产生异常结果,异常结果可能是抛出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值