遵循TDD指南时,我应该首先编写哪个测试?对整个系统或最小核心方法的测试?
示例:项目应读取CSV并将其转换为XML.我的第一个测试应该是:
获取CSV(输入)和相应的XML(预期)并检查应用程序是否正确执行转换(Assert.AreEqual(expected,actual))?
获取CSV(输入)和相应的内存表示(预期)并检查它是否被正确解析(Assert.AreEqual(expected,actual))?
第二个选项代表用于实现整个目标的方法之一,由第一个选项表示.
你必须首先了解大局,但一旦你有了这个想法 - 从小开始.决定你必须做的第一件事(小)是什么.因此,例如,假设您想要一个给出一行输入的方法,则将各个值的集合作为字符串返回.我要编写的第一个测试将采用一串值:"1,2,3"并期望一个字符串数组{"1","2","3"}.我会写更多测试来改变不同值的数量和类型.添加一个空字符串的测试等.显然,我不知道你的期望是什么,所以只考虑上面的一种可能的方式,而不是做你想要的方式.
我会慢慢构建具有所需最终结果的功能,让测试驱动应用程序的整体设计.如果你开始大的话,我认为你不会成功使用TDD因为你必须在一步中从无到有跳到完整的功能.TDD旨在为最终目标采取小的渐进步骤,让设计和代码随着您的发展而增长.
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |