什么是 TDD
TDD 有广义和狭义之分,常说的是狭义的 TDD,也就是 UTDD(Unit Test Driven Development)。广义的 TDD 是 ATDD(Acceptance Test Driven Development),包括 BDD(Behavior Driven Development)和 Consumer-Driven Contracts Development 等。
本文所说的 TDD 指狭义上的 TDD,也就是「单元测试驱动开发」。

TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD 是 XP(Extreme Programming)的核心实践。它的主要推动者是 Kent Beck。

TDD 有三层含义:
Test-Driven Development,测试驱动开发。
Task-Driven Development,任务驱动开发,要对问题进行分析并进行任务分解。
Test-Driven Design,测试保护下的设计改善。TDD 并不能直接提高设计能力,它只是给你更多机会和保障去改善设计。

TDD 的好处
1.降低开发者负担
通过明确的流程,让我们一次只关注一个点,思维负担更小。
2.保护网
TDD 的好处是覆盖完全的单元测试,对产品代码提供了一个保护网,让我们可以轻松地迎接需求变化或改善代码的设计。
所以如果你的项目需求稳定,一次性做完,后续没有任何改动的话,能享受到 TDD 的好处就比较少了。
3.提前澄清需求
先写测试可以帮助我们去思考需求,并提前澄清需求细节,而不是代码写到一半才发现不明确的需求。
4.快速反馈
有很多人说 TDD 时,我的代码量增加了,所以开发效率降低了。但是,如果没有单元测试,你就要手工测试,你要花很多时间去准备数据,启动应用,跳转界面等,反馈是很慢的。准确说,快速反馈是单元测试的好处。

参考:

https://www.jianshu.com/p/62f16cd4fef3

最新文章

  1. C语言中使用系统自带的快排函数
  2. HTML5 屏蔽触屏滚动
  3. arrayToJson将数组转化为json格式的js代码 ///////////////////////zzzzzzzzzzzzzzzz
  4. How threads differ from processes
  5. ASP.net的文件扩展名
  6. [转]Android开发最佳实践
  7. hdu 1715 大菲波数(高精度数)
  8. 计时器(Chronometer)的使用
  9. .NET MVC权限控制
  10. jQuery入门第二
  11. python文件名和文件路径操作
  12. Linux入门之常用命令(4)vi编辑器
  13. (转)log4j使用介绍
  14. 对闭包的理解(closure)
  15. C# Window Service安装、卸载、恢复选项操作
  16. axis调用Web服务报axis unexpected wrapper element{XXXX}XXX错误的解决
  17. 实验3 敏捷开发与XP实践实验报告
  18. 小程序微信支付java
  19. centos7安装Amber16 && AmberTools
  20. spring mvc EL ModelAndView的 Model 值 在jsp中不显示

热门文章

  1. ansible超详细使用指南
  2. 2019 乐游网络java面试笔试题 (含面试题解析)
  3. 英语chalchite蓝绿松石chalchite单词
  4. 设计模式 结构型 - 适配器模式 Adapter
  5. Mysql连接数过多、Mysql连接错误过多的问题处理
  6. 解决vue多次提交
  7. Kubernetes学习之路(28)之镜像仓库Harbor部署
  8. prometheus学习系列十一: Prometheus 安全
  9. linux cgroups简介(上)
  10. Ettercap 详细参数