我想知道大多数人在什么时候写单元测试.我通常在编写初始代码后编写测试,以确保它的工作方式符合预期.然后我修复了破碎的东西.
我已经非常成功地使用这种方法,但一直想知道是否可能首先转向编写测试会有利吗?
我尽可能尝试遵循纯TDD方法:
为正在开发的功能编写单元测试; 这迫使我决定公共界面
尽快编写功能(尽可能简单,但不简单)
正确/重构/重测
如果需要更好的覆盖范围,特殊的路径等,需要进行额外的测试[很少但值得考虑
重复下一个功能
很容易激动并首先开始编写该功能,但这通常意味着您不会事先考虑所有公共接口.
编辑:请注意,如果您先编写代码,很容易无意中编写测试以符合代码,而不是相反的方式!
我真的想先编写代码,而且经常这样做.但我做真正的TDD越多,我拒绝在测试中编写任何代码,我发现我写的更多可测试代码和更好的代码.
所以,是的,先写下测试.它需要意志力和决心,但它确实产生了更好的结果.
作为额外的奖励,TDD确实帮助我将注意力集中在一个有分心的环境中.