美文网首页
如何理解TDD的三条“童子军规”?

如何理解TDD的三条“童子军规”?

作者: 袁慎建 | 来源:发表于2020-04-21 17:29 被阅读0次

在美国童子军中,流传一条这样的军规:让营地比你来时更干净。Bob大叔在他的《代码整洁之道》中也引用这个词,提倡持续改进 – 作为一个专业高素养的程序员,要尽全力让项目代码随着时间流逝而越变越好。那么借用这个说法,在TDD中,我们也提倡三条童子军规:

  • 没有失败的测试之前不要写任何功能代码
  • 一次只写一个刚好失败的测试,作为新加功能的描述
  • 不写任何多余的产品代码,让它刚好能让失败的测试通过就好

如果违反了这几条童子军规,会怎么样呢?

  • 违反第一条,如果先编写了产品代码,那这段代码实现了什么业务需求呢?你又怎么确保它真的实现了呢?手工测试,太费时间。后补测试,交付压力这么大,还是先写新功能吧。
  • 违反第二条,如果写了多个测试,测试长时间没法通过,会增加开发者的心里压力。实际上,伴随着知识的积累,业务细节的深入,Task会发生变更,测试会随之修改,那之前写的测试就成了累赘。
  • 违反第三条,产品代码实现了超出当前测试的功能,这部分代码就没有测试的保护,又回到第一条了。另外,多些的代码可能是不存在的需求,增加了没必要的复杂性。

据我观察,别说TDD的初学者,就是有一定经验的TDDer,也很难时刻做到一次只编写刚好让测试通过的功能代码。我还见过有些人一上来写上10来个测试用例。那么在实践练习的过程中,在开始守(守、破、离)的阶段,可以时刻用这三条军规提醒自己。

相关文章

  • 如何理解TDD的三条“童子军规”?

    在美国童子军中,流传一条这样的军规:让营地比你来时更干净。Bob大叔在他的《代码整洁之道》中也引用这个词,提倡持续...

  • TDD 应用及思考

    背景 如果想了解TDD的话,网上的文章会比较多。 如果想理解并且应用TDD的话,不只要在代码层级 我理解的TDD,...

  • 理解TDD

    什么是TDD? 简单的说,TDD = 测试先行(TFD, Test First Development) + 重构...

  • 如何在Spring Boot中使用TDD写出高质量的接口

    之前在《如何说服你的同事使用TDD》中介绍了为什么要使用TDD(测试驱动开发),以及如何使用TDD写代码。文章发表...

  • TDD演示

    TDD测试演示 TDD,是踢蛋蛋,啊不,是测试驱动开发的简称 那什么是TDD,其实可以粗浅的理解为,先写测试类。 ...

  • TDD之旅

    关于TDD我都经历过什么: 最开始对TDD的理解很表面,只知道TDD就是先写测试,再写实现,由于大家(当然包括我自...

  • 曾国藩的十二条军规:读书不二

    曾国藩的十二条军规(3) 曾国藩的第三条军规:读书不二。每天读十页经书、十页史书,不论遇到任何问题,绝不改变。而且...

  • TDD的简单理解

    TDD -- Test-Driven Development(测试驱动开发) 应用环境:在程序的开发中,经常会遇到...

  • 高效会议的十三条军规

    团队大了,总有各种会议和讨论,沟通成本上升不少。但是我们不能只是抱怨,如何提高开会的效率才是关键。本文通过故事的方...

  • TDD

    TDD基于测试优先的概念。它的好处在于让人先去思考需求,再去思考实现。 如何推行TDD:1)自上而下的灌输‘TDD...

网友评论

      本文标题:如何理解TDD的三条“童子军规”?

      本文链接:https://www.haomeiwen.com/subject/fkjpihtx.html