经过大量阅读,学习示例和进行简单的课堂测试后,我决定使用TDD创建我的第一个简单的真实应用程序。
我的应用程序应该具有以下行为:
实际上,此应用程序会从某个网站中提取区域和城市列表。
我能够执行重构,知道什么是低耦合等等,但经过多次尝试后,我意识到我完全不知道如何使用TDD 设计整个应用程序。< / p>
使用TDD构建此特定应用程序的第一步是什么?什么是将成为完整应用程序的基础?
我正在使用PHP,但这并不重要,因为我不需要代码示例。只是一个想法,理想情况下,这个想法如何体现在我的特定情况中。我应该实施哪些具体的首次测试?为什么呢?
我认为有很多人会喜欢知道答案。非常感谢TDD人!
答案 0 :(得分:2)
测试驱动设计从测试计划开始。测试计划的第一部分不涉及任何代码;它只关注确定成功解决方案的样子。从您的示例:调用应用程序将创建一个文件,其中包含以下信息...
您的测试计划的下一个部分将更详细地查看生成的文件。您如何测试文件的内容是否格式正确且有效?你如何验证文件的内容?例如,格式良好的XML文件可以通过任何类型的XML解析器传递而无需错误报告。可以针对模式验证有效的XML文件。到目前为止,您不需要编写任何代码。创建XML模式,创建格式良好的测试文件,并测试对模式有效的文件。您的测试过程只会查看结果。
下一个剪辑涉及生成输出文件。您的第一段代码包含一些测试工具(用于提供测试数据)和文件生成器。您现在可以添加一些正确性测试。例如,创建示例输出文件,并将测试中的文件与示例进行比较。 diff
和cmp
是您的朋友,但如果XML格式受阻,您可能需要获得一些创意。
继续向后移动输入链。创建与上一步中的测试数据相对应的JSON文件。使用适当的现成工具验证JSON文件的格式和有效性。再次,使用您的测试工具将JSON文件与所需数据匹配到所需的输出文件。您在此处创建/部署的代码是JSON解析器。
下一阶段的类似步骤。首先使用curl
或wget
获取JSON文件并将其提供给您的测试工具。同样不需要代码,只需要一个命令管道。你必须手工构建正确性测试的范例,但良好的形成和有效性测试仍然是相同的。
最后,您的应用程序嵌入了curl
功能,并且您已经进行了端到端测试。