测试驱动开发——让你的代码更简洁

盖房子时,工人师傅砌墙会先用桩子拉上吊线,以吊线为基准,以使砖可以垒的笔直。而测试驱动开发也是如此,先写一个测试,而后研发过程以此为基准,只编写能经过这个测试的功能代码。html

 

视频地址:https://www.zentao.net/xp/test-driven-development-80325.html/?from=upbky编程

 

顺序颠倒下,先垒砖,再拉吊线看墙面是否笔直,不直的话进行校订。这个过程就像传统的软件开发流程,先写功能代码,而后进行测试,有错误再一点点修改,所以,会严重影响研发效率。单元测试

 

测试驱动开发的目标

代码整洁可用,是测试驱动开发所追求的目标。但有不少因素会妨碍咱们获得整洁的代码,甚至是可用的代码。测试

 

如何实现测试驱动开发?

1.  只有自动测试失败时,咱们才重写代码;优化

2.  消除重复设计,优化设计结构.net

这两条规则实际上也蕴含了开发过程当中所经历的阶段。 测试驱动开发的整个流程正是将目标拆分,先达到“可用”目标,再追求“简洁”目标。设计

 

测试驱动开发的流程

1.  首先思考并编写用于定义产品代码 行为的测试视频

2.  运行测试,发现新增的测试不能经过htm

3.  编写适当够用的代码blog

4.  运行测试,直至测试经过

5.  重构代码,以消除重复设计,优化设计结构

6.  运行测试,验证重构是否引入新的错误,直至测试经过且无需再重构

7.  最后重复上述步骤

 

测试驱动开发实际上是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,经过去除冗余的代码,提升代码质量。

 

测试驱动开发,要求测试能够彻底自动化运行,在对代码进行重构先后,必须运行测试。这有助于编写简洁可用和高质量的代码,能快速响应变化,并加速开发过程。

 

测试驱动开发的三定律

定律一:在编写不能经过的单元测试前,不可编写生产代码。

测试驱动开发主张“测试先行”,这意味着咱们必须先写单元测试,而且该单元测试必然失败,才能编写生产代码。

 

定律二:只容许编写恰好可以致使失败的单元测试,编译失败也属于一种失败。

测试驱动开发鼓励“简单设计”,以很小的增量进行开发,遇到设计问题时可以及时解决,不要指望一个测试能实现多个功能。

 

定律三:只容许编写恰好可以使得失败的单元测试经过的生产代码。

简洁,尽最大可能减小没必要要的工做,也是敏捷基本原则之一。要避免盲目编写未来有可能须要的代码。

 

遵循了测试驱动开发的这三条定律,那全部代码都是可测试的了。“可测试”的另外一个词是“解耦”,为了单独测试模块,必须将其分离,因此测试驱动开发强迫分离模块,迫使你们建立更好、更少耦合的设计。

 

Kent  Beck最先在其极限编程方法论中,向你们推荐“测试驱动”这一最佳实践。极限编程中全部实践方法并非独立的,而是相辅相成的。欢迎你们关注极限编程系列往期视频,了解更多极限编程实践方法。

 

更多精彩视频分享:https://www.zentao.net/page/college.html/?from=upbky

相关文章
相关标签/搜索