我在TDD方面仍然是一个相对初学者,经常陷入这样的困境:在尝试添加新功能时,我会发现自己在某个地方设计得不够好。
大多数情况下,这意味着从前10个需求中增长出来的API,在添加下一个需求时无法扩展。我意识到我必须对现有功能进行大规模重新设计,包括结构,以便以一种良好的方式添加新内容。
这很好,但在这种情况下,API将会改变,因此所有最初的测试都必须更改。这通常比仅重命名方法要复杂得多。
我想我的问题有两个方面:首先,我应该如何避免一开始就陷入这种情况?其次,如果我确实遇到了这种情况,重构测试并允许使用新API增长新功能的安全模式是什么?
编辑:有很多很棒的答案,我会尝试几种技术。我认为最有帮助的答案被标记为解决方案。