从总体上认识TDD

  1. 云栖社区>
  2. 博客>
  3. 正文

从总体上认识TDD

王天诗 2019-11-03 09:50:15 浏览255
展开阅读全文

测试驱动开发

它是一种开发方式,是敏捷开发、极限编程的核心部分之一。

它的目标是:可运行的简洁的代码。

在TDD中,有着两项简单原则:

  1. 仅当测试化失败的时候,才编写新的代码(产品代码、功能代码);
  2. 去掉重复的部分——重构

从上产生出一组技术方面复杂的行为准则:

  • 必须参考每次修改代码后代码运行状况的反馈,逐渐完成设计;
  • 必须自己编写测试;
  • 开发环境(如IDea)必须对细微的修改做出响应;
  • 设计必须遵从高内聚、低耦合的原则,这便于实施测试。

从上两条原则也预示了TDD编程任务的先后顺序:

  1. 红色指示条——编写一个无法工作的简单测试(甚至说无法通过编译)
  2. 绿色指示条——迅速使测试工作起来(想方设法,竭尽手段
  3. 重构——去掉单纯由于使测试工作起来而产生的重复部分(数据的重复-输入、输出)

所以TDD的经典三部曲就是:红色指示条——绿色指示条——重构。

面对问题时,要么一筹莫展,要么从简单的地方着手。那么这样做吧: 从简单的地方着手;编写自动化测试;通过每一次的重构添加一回设计上的构思。


简单的原则,蕴含了非常好的思维模式,同样给程序带来了很好的效果。可以说,除非有着与之对应的测试,不然是不应该存在任何产品代码——这样的编程,确保了所写的代码,全部都是可测试的,这些代码的正确性有着测试方法的保证,任何错误的修改都将立刻提示出来。这给了继续前进的勇气。 也可以说,当程序的现有工作代码全部都被测试所覆盖,这就极大降低了BUG潜伏的隐患。 既然是需要现有测试,那么就是说现在程序里没有任何功能代码,也是先写了测试,所以说写测试时候并不在意程序是否存在这个类或方法、字段,尽管写测试吧,等测试写完后,再想方设法使得测试迅速工作起来!重构是非常重要的,简单来说重构就是对现有代码的修改——对如何做而不是做什么。

END

2019年11月3日,09点44分

网友评论

登录后评论
0/500
评论
王天诗
+ 关注