使用TDD(BDD)开发整个应用程序(不是单个类)?

时间:2013-05-11 15:16:34

标签: php tdd bdd

经过大量阅读,学习示例和进行简单的课堂测试后,我决定使用TDD创建我的第一个简单的真实应用程序。

我的应用程序应该具有以下行为:

  • 这是一个没有用户界面的控制台应用程序
  • 它会从某个URL下载一个Json(代表一个数组)
  • 从此数组中提取一些数据
  • 使用第一步中的数据下载另一个Jsons
  • 以指定格式将所有这些数据传递到文件中。

实际上,此应用程序会从某个网站中提取区域和城市列表。

我能够执行重构,知道什么是低耦合等等,但经过多次尝试后,我意识到我完全不知道如何使用TDD 设计整个应用程序。< / p>

使用TDD构建此特定应用程序的第一步是什么?什么是将成为完整应用程序的基础?

我正在使用PHP,但这并不重要,因为我不需要代码示例。只是一个想法,理想情况下,这个想法如何体现在我的特定情况中。我应该实施哪些具体的首次测试?为什么呢?

我认为有很多人会喜欢知道答案。非常感谢TDD人!

1 个答案:

答案 0 :(得分:2)

测试驱动设计从测试计划开始。测试计划的第一部分不涉及任何代码;它只关注确定成功解决方案的样子。从您的示例:调用应用程序将创建一个文件,其中包含以下信息...

您的测试计划的下一个部分将更详细地查看生成的文件。您如何测试文件的内容是否格式正确且有效?你如何验证文件的内容?例如,格式良好的XML文件可以通过任何类型的XML解析器传递而无需错误报告。可以针对模式验证有效的XML文件。到目前为止,您不需要编写任何代码。创建XML模式,创建格式良好的测试文件,并测试对模式有效的文件。您的测试过程只会查看结果。

下一个剪辑涉及生成输出文件。您的第一段代码包含一些测试工具(用于提供测试数据)和文件生成器。您现在可以添加一些正确性测试。例如,创建示例输出文件,并将测试中的文件与示例进行比较。 diffcmp是您的朋友,但如果XML格式受阻,您可能需要获得一些创意。

继续向后移动输入链。创建与上一步中的测试数据相对应的JSON文件。使用适当的现成工具验证JSON文件的格式和有效性。再次,使用您的测试工具将JSON文件与所需数据匹配到所需的输出文件。您在此处创建/部署的代码是JSON解析器。

下一阶段的类似步骤。首先使用curlwget获取JSON文件并将其提供给您的测试工具。同样不需要代码,只需要一个命令管道。你必须手工构建正确性测试的范例,但良好的形成和有效性测试仍然是相同的。

最后,您的应用程序嵌入了curl功能,并且您已经进行了端到端测试。