WW.*_*WW. 9 language-agnostic tdd refactoring
我正在玩家里的玩具项目,以更好地了解测试驱动设计.起初似乎进展顺利,我遇到了失败的测试,代码,通过测试.
然后我来添加一个测试,并意识到我现在的结构会很困难,而且我应该分开一个有太多责任的特定课程.为下一次测试增加更多的责任显然是错误的.我决定抛开这个测试,并重构我所拥有的.这是事情开始出错的地方.
如果不立即进行大量测试就很难进行重构,然后唯一的选择就是做出许多改变,并希望我最终回到测试再次通过的地方.测试本身是有效的,我只需要在重构时打破几乎所有测试.在我回到所有测试通过之前,重构(我仍然不满意)花了我五六个小时.测试确实帮助了我.
感觉就像我离开了TDD赛道.你觉得我做错了什么?
由于这主要是一个学习练习,我正在考虑回滚所有的重构,并试图以更好的方式再次前进.
也许你在分课时走得太快了.Extract Class Refactoring的步骤如下:
这样你在重构你的类时就不会破坏大量的测试,你可以依靠测试来确保在整个类拆分中没有任何东西被打破.
此外,请确保您正在测试行为,而不是实施.