为什么一定要测试先行呢?
TDD强调测试先行,如果我们已经把tasking做好了,确定了每一个task的scope,我先写代码再写测试,又有什么不适合呢?为什么一定要测试先行?
首先,tasking帮助我们分离关注点,测试先行更能保证我们开发的时候focus在当前实现,并且快速验证;其次,很多人都会觉得测试不好写,人是一种趋利避害的高等动物,测试先行,会让我们想办法让测试更容易编写,也可以保证我们的代码更易于测试;再者,测试先行会驱动我们提前思考设计,写出来的代码质量更高,坏味道更少;最后,tdd的角度是业务驱动,与整洁架构的业务核心思想天然契合。