无意间接触TDD

以前写个小函数之后,一直用main函数来做单元测试。看看是否有其他的方法,不用老这么整。
后面听到过xUnit啥,然后在网上也看一部分资料,Junit简要入门,junit-tutorials等。
弄完之后觉得好奇,想知道Junit是谁先提出的,无意间就找到 Kent Beck 的一本关于测试驱动开发的书:
《Test-Driven Development By Example》

TDD 小结

后面每天抽点时间把第一章的知识看完,主要围绕资金实例一步一步的介绍测试驱动开发,作者忒细心,
深怕介绍的过快而没有讲清楚。今日把相关的要点列出来,最近慢慢在开始练习开发模式写代码。示例代码
可以参考TDD

测试驱动开发的目标

每一种开发方法都是为了解决某个问题而来的,而测试驱动开发的目的就是为让人写出整洁可用的代码。

测试驱动开发的态度

  • 测试优先
  • 只有自动测试失败时,才重写代码
  • 不可运行/可运行/重构
  • 不断构建测试列表

测试驱动开发的过程

  • 加入一个小的测试;
  • 运行所有测试,运行测试;
  • 适当修改;
  • 运行测试且成功;
  • 重构,消除重复设计,优化设计结构。

三个测试驱动开发小技巧

  • 让测试利落运行的三种方法
    • 伪方法:返回一个常量并逐渐用变量代替常量,直至伪实现代码成为真实地代码
    • 三角法:在例子达到2个或更多时才对代码实施一般化
    • 显明实现:实现真实的代码
  • 把消除代码与测试间的重复设计作为驱动设计的一种手段
  • 控制测试间隙的能力,不知如何下手,就放慢,在状况好时就开快一些

参考资料