我正在构建一个新的应用程序,并尽可能忠实地坚持"测试优先"的开发.我发现自己处于需要实现/更改具有使许多现有单元测试无效的功能的情况.我该怎么处理这件事?我认为,有3种选择:
更新或删除所有现有测试以满足新功能要求(根据需要添加更多功能),然后实现该功能
首先实现该功能,运行测试以查看故障,并更新或删除任何失败的测试(根据需要添加更多)
为新功能添加新测试,实现功能,运行所有测试以查看旧测试失败,根据需要删除或更新旧测试
第一种选择坚持TDD,但可能会产生极大的反效果.第二种选择是最简单的,但你不会先忠实地测试,也可能没有被"覆盖".第三种选择是对两者的妥协,并且在某种程度上具有吸引力,但是当您刚刚更新旧的时,您可能会重新编写测试.
我不觉得我在这里有任何明确的策略.你在这些情况下做了什么?
我会选择一个测试并将其更改为需要新功能.如果没有任何明显的候选人,即它真的是新的,我会创建一个.然后我会编写代码来通过该测试.那时我会运行我的其他测试,并注意到其中一些测试失败了.在这一点上,我会再次到每个测试依次执行校正测试以反映新的特征(因此它没有其它的代码的变化通过)或相对于新特征更新测试(这可能需要对一些进一步的修改正在测试的代码).
归档时间: |
|
查看次数: |
272 次 |
最近记录: |