About TDD

TDD (Test-Driven Development)

一种新型开发方法,在编写功能代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。
好处:
有助于编写简介可用和高质量的代码,并加速开发过程。
分类:
广义:ATDD , BDD
侠义:UTDD
本文探讨侠义UTDD(单元测试驱动开发)。

TDD编码方式

  1. 分解任务,分离关注点
  2. 列example,用实例化需求,澄清需求细节
  3. 写测试,只关注需求,程序输入输出,不关心中间过程
  4. 写实现,不考虑别的需求,用最简单的方式满足当前小需求即可
  5. 重构
  6. 写完,手动测试,有问题补个用例,修复
  7. 转测试,小问题,补用例,修复
  8. 代码整洁用例齐全,提交

好处

效率:

  • 提前确认需求,减少开发中的中断和等待
  • 小步快走,节省调试时间

质量:

  • 高测试覆盖率
  • 自动回归测试

如何做TDD

  • 做设计
    步骤:
    1.快速新增一个测试
    1. 运行所有测试,发现新增的测试不能通过
    2. 做一些小改动,尽快让测试程序可运行,为此可以在程序中使用一些不合情理方法(复制粘贴代码,直接返回固定值之类的方式)
    3. 运行所有测试,并且全部通过
    4. 重构代码,消除重复设计,优化设计结构
  • 不做设计

练习题目

FIZZBUZZ:
写一个程序打印1到100这些数字,遇到3的倍数,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数,打印“FizzBuzz”。

题解:

image.png

如何学习TDD

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,955评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,306评论 19 139
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 11,681评论 5 100
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 22,089评论 7 278
  • 因为渴了,于是打开保温瓶,在玻璃杯里倒入开水,开水的温度很快遍及杯身,杯面开始发烫,杯口未及水面的地方拢上层子水汽...
    23齿轮阅读 3,584评论 0 1