cp from  :  https://blog.csdn.net/ibelieve1974/article/details/54948031

如何理解Bob大叔的TDD三条规则?
第一条和第三条讲的是只有和只要。只有Case False的情况下才能写Code。只要新写的Code使得Case通过了,就不要写任何新功能代码了。重构是可以的。
第二条是说只允许编写Case失败的代码。这一条操作起来有个疑惑。比如为写一个算法,先把写一个验证功能的Case,然后写代码。Case通过以后,想验证下特殊值情况,又写一个Case,结果Case也幸运的Pass了。这算不算违反了Bob大叔的TDD规则2呢? 经过咨询了James Grenning,这样做是可以的。第二条只允许编写失败Case是指对于未实现的新的功能。比如原计划写5个测试功能的Case,当你完成功能1和2开发和测试,那你就对未实现的功能3的写的测试case当然是fail的。但这不妨碍你继续写增加对功能1和2测试的验证case。

You are not allowed to write any production code unless it is to make a failing unit test pass.
1、除非为了使一个失败的unit test通过,否则不允许编写任何产品代码
You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
2.在一个单元测试中只允许编写刚好能够导致失败的内容(编译错误也算失败)
You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
3、只允许编写刚好能够使一个失败的unit test通过的产品代码

---------------------
作者:Sleeping-Cat
来源:CSDN
原文:https://blog.csdn.net/ibelieve1974/article/details/54948031
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/0616--ataozhijia/p/11079644.html

[设计原则与模式] 如何理解TDD的三条规则相关推荐

  1. 统计|如何理解估计量的三条评价标准

    本博文源于<商务统计>,主要探究理解估计量的三条评价标准,为后面的假设检验学习作出相应的铺垫. 估计量起源 我们一般会用样本的一些特性去描述总体的一些特性,以达到最好的估计.样本去估计整体 ...

  2. java并发编程:设计原则与模式_java编程设计模式一——策略模式

    定义: 策略模式定义了算法族,分别封装起来,让它们之间相互替代.此模式让算法的变化独立于使用算法的客户. 问题描述: 建立一个鸭子Duck的父类,它有很多子类,Duck都会游泳,但是有鸭子会飞,有的鸭 ...

  3. 软件设计原则和方法通俗理解

    网上有很多关于软件设计原则的说法,很精确,很官方,但是对于有些初学者来说可能是不知所云,到最后把自己给郁闷到了,学习软件应该是一件愉快的事情. 那么软件设计原则有哪些呢? (1)可靠性 做出一个可靠的 ...

  4. 设计原则与模式009 中介者模式

    中介者模式:名如其义:其核心设计原则是迪米勒法则;通过中介者降低彼此模型之间的沟通 1产生场景 中介者模式场景介绍:假设有一个进销存模型,进货是根据销售情况决定,同时进货会影响库存; 最开始的流程伪代 ...

  5. 应用架构设计原则、模式摘录

    1.Tier和Leyer的区别: Tier 指的是系统的物理部署结构 Leyer 指的是系统的逻辑层结构 2.基本设计原则概述 KISS原则 提倡在设计和编码中,尽量保持代码的简约性,避免不必要的复杂 ...

  6. 6月24 面向对象的设计原则-----工厂模式和单列模式

    工厂模式: 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式.它定义一个用于创建对象的接口,由子类决定实例化哪一个类. 工厂模式相当于创建实例对象的new, ...

  7. 《Java并发编程:设计原则与模式 第二版》pdf 附下载链接

    链接:https://pan.baidu.com/s/1Ie5bOhrQJOhSlzTlAE0UHA 密码:m1c4 本书为完整版,以下为内容截图:

  8. 深入理解信息科学中三条“数据法则”

    通过上一章的阅读,我清楚地认识到了物理.生物和数字世界的区别和联系,从而更深层次地明白了三个世界之间的结合与共同作用,极大程度上拓宽了人类的生存空间与发展未来前景,推动着人类文明的向前与科技的进步.不 ...

  9. 《.NET应用架构设计:原则、模式与实践》新书博客-2.1.1-设计原则简述

    第2章  模式.设计原则和方法       在软件世界中,我们在不断地解决着各种问题,其中有些问题前人已经总结出了解决的方法和经验,而这些方法和经验则形成了我们所熟知的模式.本章主要讲述在面向对象设计 ...

最新文章

  1. pycharm 黄色(黄字)高亮警告 Default argument value is mutable 原因及解决办法(mutable 可变对象与 immutable不可变对象)
  2. c语言编译不了什么情况,c语言编译没错但是无法运行
  3. 如何让你的Linux云服务器更加的安全?
  4. JavaSpring菜鸟教程,附Java面经
  5. 10分钟健身法读书笔记(5/5)
  6. vue父组件通过v-for循环多次调用同一个子组件,改变被循环数组个数,各子组件显示数据混乱
  7. 使用地点云实现企业官网中的门店地图
  8. 限免|iOS长截图工具 滚动截屏
  9. Android.mk入门教程
  10. failed to connect to ‘192.168.199.143:5555‘: Connection refused
  11. 孤立波matlab,色散方程的两个八点差分格式
  12. pdf如何转换成ppt?
  13. 702-C语言的枚举常量
  14. 聚水潭完成3亿元B3轮融资,红杉资本中国基金独家投资
  15. HTTP请求头部+响应码
  16. opencv3.3.1+python3.6.3图像上添加背景透明logo
  17. Eigen求解大型稀疏对称矩阵(Cholesky分解)
  18. 机器学习 keras+flask(或者Django)问题
  19. 南京理工大学计算机学院教授严捍,南京理工大学计算机科学与技术学院研究生导师简介-唐金辉...
  20. C#中强制关闭某个进程

热门文章

  1. 印象笔记电脑版使用技巧_印象笔记使用攻略
  2. [java][工具类][Collections]
  3. 自己搭建的邮件系统不能发往gmail、hotmail等问题解决
  4. margin塌陷与margin合并、浮动流
  5. 计算机网络基础题解综合练习实验,计算机网络基础题解•综合练习•实验
  6. python mysql library popular_python之mysql入门详解(四)
  7. stm32呼吸灯程序_学习STM32从点灯开始!
  8. python列表常用操作函数_Python入门——列表常用操作
  9. pta 是否完全二叉搜索树_二叉树:构造一棵搜索树
  10. php 获取文件扩展名的方法,PHP获取文件扩展名的4种方法,_PHP教程