深度解读 - TDD(测试驱动开发)(10)

发表于:2017-03-31来源:jianshu作者:SeabornLee点击数: 标签:tdd
return format (frequency) } 这时候,又有两种选择,有人喜欢自顶向下,有人喜欢自底向上,我个人更倾向于前者。 现在开始,只要照着 红-绿-重构 的循环去做
return format(frequency) }

这时候,又有两种选择,有人喜欢自顶向下,有人喜欢自底向上,我个人更倾向于前者。


现在开始,只要照着 红-绿-重构 的循环去做就可以。
大部分 TDD 做不好,就是没有前面的任务分解和列 Example 的过程。

FAQ

为什么一定要先写测试,后补测试行不行?

行,但是要写完实现后,马上写测试,用测试来验证实现。如果你先手工测试,把代码都调试好了,再补单元测试,你就会觉得很鸡肋,还增加了工作量。
不管测试先行还是后行都可以享受到快速反馈,不过如果测试先行,你就可以享受另一个好处,使用意图驱动编程减少返工。因为你的测试代码就是产品代码的客户端(调用者),你可以在测试代码里写成你理想的样子(方法名,参数,返回值等),再去实现产品代码,比起先写实现后写测试,前者返工更少。

刚写了一个测试,还没写实现。明知道运行测试一定会报错,为什么还要去运行?

其实测试的运行结果并非只有通过与不通过两种,因为不通过时有很多种可能。所以在明知道一定失败的情况下去运行测试,目的是看看是不是报了期望的那个错误。

小步快走确实好,但真的需要这么小步吗?

原文转自:http://www.jianshu.com/p/62f16cd4fef3