Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

4年前关闭。



Improve this question





遵循TDD准则时,我应该编写的第一个测试是什么?对整个系统还是最小核心方法的测试?

示例:项目应读取CSV并将其转换为XML。我的第一个测试应该是:


获取CSV(输入)和相应的XML(预期),并检查应用程序是否正确进行了转换(Assert.AreEqual(预期,实际))?
获取CSV(输入)和相应的内存表示形式(预期),并检查其是否正确解析(Assert.AreEqual(预期的,实际的))?


第二个选项代表一种用于实现整个目标的方法,第一个选项代表该方法。

最佳答案

您首先必须对全局有一个想法,但是一旦有了想法,请从小做起。确定要做的第一件事(小)。因此,举例来说,假设您想要一个给定输入行的方法,将单个值的集合作为字符串返回。我要编写的第一个测试将采用一串值:“ 1,2,3”,并期望由字符串{“ 1”,“ 2”,“ 3”}组成的数组。我会写更多的测试来改变不同值的数量和类型。添加一个用于测试空字符串等的测试。显然,我不知道您的确切期望是什么,因此仅将以上内容视为一种可能的方法,而不是执行所需操作的方法。

我会慢慢构建功能,并牢记所需的最终结果,让测试来驱动应用程序的总体设计。如果您从头开始,我认为TDD不会成功,因为您必须一步一步从无到有地迈向完整功能。 TDD旨在朝着最终目标采取小幅增量的步伐,让设计和代码随您的发展而增长。

关于tdd - TDD指南说是从大范围开始还是从基础开始? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/789866/

10-15 10:23