TDD (Test-Driven Development)
一种新型开发方法,在编写功能代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。
好处:
有助于编写简介可用和高质量的代码,并加速开发过程。
分类:
广义:ATDD , BDD
侠义:UTDD
本文探讨侠义UTDD(单元测试驱动开发)。
TDD编码方式
- 分解任务,分离关注点
- 列example,用实例化需求,澄清需求细节
- 写测试,只关注需求,程序输入输出,不关心中间过程
- 写实现,不考虑别的需求,用最简单的方式满足当前小需求即可
- 重构
- 写完,手动测试,有问题补个用例,修复
- 转测试,小问题,补用例,修复
- 代码整洁用例齐全,提交
好处
效率:
- 提前确认需求,减少开发中的中断和等待
- 小步快走,节省调试时间
质量:
- 高测试覆盖率
- 自动回归测试
如何做TDD
- 做设计
步骤:
1.快速新增一个测试- 运行所有测试,发现新增的测试不能通过
- 做一些小改动,尽快让测试程序可运行,为此可以在程序中使用一些不合情理方法(复制粘贴代码,直接返回固定值之类的方式)
- 运行所有测试,并且全部通过
- 重构代码,消除重复设计,优化设计结构
- 不做设计
练习题目
FIZZBUZZ:
写一个程序打印1到100这些数字,遇到3的倍数,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数,打印“FizzBuzz”。
题解:
image.png