编写优秀的单元测试(二)测试先行

本文介绍了测试先行(TDD)的概念及其实践方式,强调先写测试用例,再编写代码以确保覆盖异常情况,降低代码复杂性。测试先行不仅保护代码免受回归错误,还帮助塑造设计。此外,提及BDD(行为驱动开发)作为TDD在需求层面的延伸。文章总结了测试先行的重要性和作用,并预告下篇将探讨如何编写高质量的单元测试。
摘要由CSDN通过智能技术生成

介绍

测试先行就是我们常说的测试驱动开发(TDD)

测试先行的实践方式

测试先行的实践方式是在接到一个新功能的时候,先写一个测试,这个测试一定会失败,然后编写代码使得测试成功,然后再写下一个测试,有点像是填坑的方式进行开发。

传统的开发方式是:设计-开发-测试 如此往复

测试先行的开发方式是:测试-代码-重构 如此往复

下图指示了设计先行的开发方法:
在这里插入图片描述

我们在实际开发中,通常会犯的两个错误就是:

  1. 只使用最少的代码实现正向的逻辑,漏掉或完全不考虑异常情况
  2. 再开发完主要功能之后,考虑到太多的异常情况,使得异常情况的处理变成补窟窿,最终得到的结果与原设计差别巨大。

使用测试先行的方法,在编写测试的过程中,就通过用户故事设计出各种异常情况的测试,“强迫”开发人员在编码的时候考虑异常情况,再者,将异常情况代入整体的设计,一定可以让代码更加简洁,降低代码的复杂性。

测试先行的作用

  1. 这种开发方式会潜移默化的改变我们的编程风格,本质上说:测试帮助我们针对实际使用来塑造设计
  2. 测试先行的单元测试不仅是在保护回归,而且是在帮助设计。在编写代码之前就指出代码的期望行为,从而在验证实现之前先验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值