我正在练习TDD,我已经完成了最简单的实现,满足了我的测试。现在经过第二次和第三次测试后,我发现我可以将我的逻辑片段提取为依赖。我应该怎么做现有的测试?我应该保留它们并间接测试这种依赖性吗?或者我应该“重写”我的测试并在原始情况下使用存根/模拟将它们分成几部分?
答案 0 :(得分:3)
如果可以,我会保留原始测试,因为它们是作为回归测试运行的。即,现在你已经重新编写了原始代码,测试仍然有效。
然后,您可以围绕提取的功能编写其他测试。此时编写更复杂的测试以直接测试提取的功能而不是通过已识别/重构的集成层可能是有意义的。
答案 1 :(得分:1)
我认为那里没有银弹答案。仅仅基于你描述的内容,我倾向于:
如果你最终完全复制测试代码,你可能想要减轻,但重要的是要继续测试“完全集成的功能”是否按预期工作。
答案 2 :(得分:0)
在refactor
的{{1}}阶段,可能是重构业务代码或相应的测试。因此,当您重构代码时,您应该采取措施重构测试用例以使它们通过。
答案 3 :(得分:0)
提取到依赖项可能是重构,因为整体行为保持不变,您只将其分布在更多类上。重构是TDD周期中的第三步也是最后一步,在测试为绿色之后发生,而不添加新测试。所以这就是我要做的事情: