我开始尝试学习 tdd 并想在实际项目中使用它。所以我决定用java编写一个简单的文件同步客户端和服务器。 或多或少完成客户端部分后,我在编写服务器部分时卡住了。
为了在不访问外部资源的情况下对逻辑进行单元测试,我将它们放在单独的类中,以便我可以模拟它们。到目前为止,还不错。
现在这是我的问题:
This image展示了我想象中的一切可能的样子,其中绿色部分已完成,黄色部分尚未实现。
在我的例子中,我必须将 RemoteServer
传递给 ConnectionManager
。 ConnectionManager
需要一个 FileAdapter
和一个 Communicator
才能创建一个 ClientConnectionHandler
。对我来说,这听起来有点过分了。这对于 tdd'ing 来说是正常的还是我为了让所有内容都可测试而做错了什么?
编辑:ClientConnectionHandler 类只负责服务器端的文件同步逻辑,这意味着:按照我自己的迷你协议(protocol)从客户端接收文件。
最佳答案
这很正常。如果你得到一个有很多依赖关系的类,它可能有 too many responsibilities以及。但是让一个类依赖于另一个类又依赖于另一个类 - 这是正常的。
关于java - 使用 TDD : File Synchronization with Client/Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301896/