C++升级之整洁之道(七)——驱动测试(TDD)

本文探讨了单元测试的局限性,如缺乏改进动力和高覆盖率的挑战,以及驱动测试(TDD)的工作流程,包括红-绿-重构的周期。TDD的优势在于提供快速反馈、促进需求理解和代码质量。尽管TDD不适用于所有场景,但其100%测试覆盖率和对依赖关系的谨慎处理有助于构建更健壮的系统。
摘要由CSDN通过智能技术生成

1.单元测试的缺点

  (1)一旦一个功能工作,用单元测试改进代码的动机很少;(2)结果代码很难测试;(3)通过改进的单元测试达到较高的测试覆盖率并不容易,完成代码后编程单元测试可能会导致漏掉某些问题或者bug。

2.驱动测试的流程

  组件、类以及函数从业务类基础的需求,TDD及其测试的第一种方法是通过单元测试确定需求——实际上,在编写代码之前,在测试第一种开发组件的方法中,这里指的是最底层的需求。
  其次,我们将编写一个测试,从而设计公共接口。这可能让人惊讶,因为在这个周期的一次允许中我们仍然没有编写任何产品代码,我们在测试在编写了一些代码之后,当然,我们还必须通过编译并提供测试所需要的接口。
  TDD周期通常被称为“红-绿-重构”
在这里插入图片描述

  红:我们编写的一个失败的测试案例;绿:我们编写产品代码。用于保证前面编写的测试用例通过;重构:删除重复代码以及其他代码的坏味道,重构代码包括产品代码和测试代码RED和GREEN指的是可以用于各种IDE的典型单元测试框架集成,其中通过的测试显示为绿色,失败的测试显示为红色。

3.TDD的优势

  1.如果遵循TDD的思想,在开发时就会逐步完成你的需求。传统方法的缺点在于,软件无法确保数小时或数天内的编译的执行不报错;2.TDD建立了一个非常快速的反馈循环,开发人员必须始终知道它们的代码的执行结果是否正确。3.先编写单元测试有助于开发人员思考接下来应该做什么;4.在TDD的帮助下,无间隙的规范可执行代码的形式出现;5.开发任意能够更加自觉和负责任地处理依赖关系;5.通常情况下,利用TDD开发的新产品代码将具有100%单元测试覆盖率。

  但是,系统的每一部分代码没有必要使用TDD进行开发,对于复杂性和风险很低,可以快速完成那些的代码,当然可以不使用TDD.,另一个挑战就是获得一个好的架构,不能取代度软件系统的粗粒度解耦的必要抉择。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值