【腾讯TMQ】实践单元测试的姿势

本文探讨了单元测试的目的和价值,介绍了3A原则(Arrange-Action-Assert)来组织单元测试,强调了初始化、行为验证和断言的重要性。同时,针对单元测试的可测性问题,提出了独立运行、覆盖输入分类的解决方案,以提高代码的可测性和质量。
摘要由CSDN通过智能技术生成

# 引言 #:单元测试的目的是什么呢?就是完整检测代码单元的功能逻辑,找出代码单元本身的所有功能逻辑错误,具体来说,就是检测对数据的各种分支是否考虑全面,处理是否正确。形象地说,单元测试的目的就是验证:无论别人怎么样,我总是对的。“别人”,是指相关代码或环境,“我”,是指正在编写或测试的代码单元。

单元测试为啥能提高代码质量呢?由于每个单元有独立的逻辑,做单元测试时需要隔离外部依赖,确保这些依赖不影响验证逻辑。因为要把各种依赖分离,单元测试会促进工程进行组件拆分,整理工程依赖关系,更大程度减少代码耦合。这样写出来的代码,更好维护,更好扩展,从而提高代码质量。
那么我们应该如何编写单元测试的代码?当遇到被测代码可测性差时如何解决?本文试着从个人实践出发来阐述这两个问题。

姿势1: 3A原则组织单元测试

单元测试都有相同的流程。首先需要设置好合适的条件,然后执行代表要验证的行为的代码,最后验证结果是否和预期的一样。

测试应当尽可能地直接反映其测试意图。这就意味着阅读测试代码的人不需要细细品读代码中的每一行,就能很容易的理解测试的基本构成:单元测试的初始化(Arrange)、测试的行为(Action)、以及怎样验证测试结果(Assert)。

Arrange、Action、Assert提醒你直观地去组织单元测试以便能够快速的阅读代码。

1、Arrange初始化

单元测试中的初始化工作,是为了解决被测函数中必要的前置依赖的问题。如下例所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值