使用TDD:与客户端/服务器的文件同步

时间:2011-09-04 20:24:13

标签: java tdd client-server

我开始尝试学习tdd并希望在真实项目中使用它。所以我决定在java中编写与客户端和服务器的简单文件同步。 在完成客户端部分或多或少之后,我在编写服务器部分时陷入困境。

为了在不访问外部资源的情况下对逻辑进行单元测试,我将它们放在不同的类中,以便我可以模拟它们。到目前为止,非常好。

现在这是我的问题:

This image展示了我如何想象一切,绿色部分已经完成,黄色部分尚未实现。

在我的情况下,我必须通过RemoteServer一个ConnectionManagerConnectionManager需要FileAdapterCommunicator才能创建ClientConnectionHandler。这对我来说听起来有点太过分了。这是正常的tdd'ing还是我做错了什么才能保持一切可测试?

编辑:类ClientConnectionHandler仅负责服务器端的文件同步逻辑,这意味着:遵循我自己的迷你协议从客户端接收文件。

1 个答案:

答案 0 :(得分:2)

这很正常。如果你得到一个有很多依赖关系的类,它也可能有too many responsibilities。但是有一个类依赖于另一个依赖于另一个类 - 这是正常的。

这就是IoCSpring这样的容器库很受欢迎的原因。它们使得更容易连接(配置和解决)所有依赖项。