我正在建立一个新的应用程序,尽可能忠实地坚持“测试第一”的发展.我发现自己在需要实施/更改功能的情况下,该功能会使许多现有的单元测试无效.我该怎么处理这个?我看到,有3个选项:
>更新或删除所有现有测试以满足新功能要求(如有必要,添加更多),然后实现该功能
>首先实施该功能,运行测试以查看故障,并更新或删除任何失败的测试(根据需要添加更多信息)
>添加新功能的新测试,
实现功能,运行所有测试
看到旧的失败,删除或
根据需要更新旧的测试
第一个选择遵守TDD,但可能会令人难以置信的反作用.第二个选择是最简单的,但是你不会先做出忠实的测试,可能没有被正确的“覆盖”.第三个选项是对一个学位的兼并和吸引力,但是当您可以更新旧的测试时,您会冒着重写测试的风险.
我不觉得我在这里有明确的策略.在这些情况下你做什么?