TDD ...如何?

标签 tdd

我即将开始我的第一个 TDD(测试驱动开发)程序,而且我(自然)有一个 TDD 心理障碍..所以我想知道是否有人可以帮助指导我应该从哪里开始。

我正在创建一个函数,该函数将从套接字读取二进制数据并将其数据解析为类对象。

据我所知,有3个部分:

1) 解析数据的逻辑
2) 套接字类
3) 类对象

我应该采取哪些步骤才能逐步进行 TDD?我绝对计划在实现功能之前先编写测试。

最佳答案

TDD 中的问题是“为可测试性而设计”

首先,您必须有一个接口(interface)来编写测试。

要到达那里,您必须大致了解您的可测试单元是什么。

  • 某个类,由函数构建。
  • 某个函数,它从套接字读取并发出一个类。

  • 其次,给定这个粗略的接口(interface),您可以将其形式化为实际的非工作类和函数定义。

    第三,您开始编写测试——知道它们会编译但会失败。

    在此过程中,您可能会开始对您的功能感到头疼。你如何为你的函数设置一个套接字?那是脖子疼。

    但是,您在上面粗略的界面不是法律,这只是一个好主意。如果你的函数接受一个字节数组并创建一个类对象怎么办?这很容易测试。

    因此,重新审视这些步骤,更改接口(interface),编写非工作类和函数,现在编写测试。

    现在您可以填写类和函数,直到所有测试都通过。

    当您完成这一点测试后,您所要做的就是挂上一个真正的套接字。你相信套接字库吗? (提示:你应该)这里没有太多要测试的。如果您不信任套接字库,那么现在您必须提供可以以受控方式运行的数据源。这是一个很大的痛苦。

    关于TDD ...如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/738539/

    相关文章:

    php - 包含或需要一个 vfsStream 文件

    javascript - DOM 节点的警告 : ReactDOMComponent: Do not access . Prop

    java - 测试驱动开发。断言类的内部结构是否正确?

    ruby-on-rails - 如果我已经有一个没有任何测试的大型代码库,如何开始编写测试?

    tdd - 如何构建验收测试和测试计划?

    unit-testing - 我可以做些什么来改进我的测试?

    java - 在 MVC 上应用 TDD

    ios - 如何测试自定义 UINavigationController 行为

    testing - 为什么 GoConvey 测试失败并显示错误代码 0?

    php - 使用 vfsStream 测试 move_uploaded_file 和 is_uploaded_file