TDD …怎么样

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

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

据我所见,有3部分:

1)解析数据的逻辑
2)socket类
3)类对象

我应该采取哪些步骤,以便我可以逐步推广TDD?我绝对打算在甚至实施该功能之前首先写测试.

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

首先,你必须有一个接口来编写测试.

要到达那里,你必须大概了解你的可测试单位是什么.

一些类是由一个函数构建的.
>一些功能,从套接字读取并发出一个类.

第二,给定这个粗略的界面,您将其形式化为实际的非工作类和函数定义.

第三,你开始写你的测试 – 知道他们会编译但失败.

通过这一点,您可能会开始关注您的功能.如何为您的功能设置套接字?这是一个痛苦的脖子.

但是,你上面介绍的界面不是法律,只是一个好主意.如果您的函数使用了一个字节数组并创建了一个类对象,该怎么办?这很容易测试.

所以,重新阅读步骤,更改界面,编写非工作类和函数,现在编写测试.

现在您可以填写课程和功能,直到您的所有测试通过.

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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...