我开始尝试学习tdd并希望在真实项目中使用它。所以我决定在java中编写与客户端和服务器的简单文件同步。 在完成客户端部分或多或少之后,我在编写服务器部分时陷入困境。
为了在不访问外部资源的情况下对逻辑进行单元测试,我将它们放在不同的类中,以便我可以模拟它们。到目前为止,非常好。
现在这是我的问题:
This image展示了我如何想象一切,绿色部分已经完成,黄色部分尚未实现。
在我的情况下,我必须通过RemoteServer
一个ConnectionManager
。 ConnectionManager
需要FileAdapter
和Communicator
才能创建ClientConnectionHandler
。这对我来说听起来有点太过分了。这是正常的tdd'ing还是我做错了什么才能保持一切可测试?
编辑:类ClientConnectionHandler仅负责服务器端的文件同步逻辑,这意味着:遵循我自己的迷你协议从客户端接收文件。
答案 0 :(得分:2)
这很正常。如果你得到一个有很多依赖关系的类,它也可能有too many responsibilities。但是有一个类依赖于另一个依赖于另一个类 - 这是正常的。