我开始尝试学习tdd,并想将其用于一个实际的项目中。所以我决定用java编写一个简单的客户端和服务器的文件同步程序。在或多或少完成了客户端部分之后,我在编写服务器部分时卡住了。
为了在不访问外部资源的情况下对逻辑进行单元测试,我将它们放在单独的类中,这样我就可以模拟它们。到现在为止还好。
现在我的问题是:
This image展示了我想象中的一切,绿色的部分已经完成,黄色的部分还没有实现。
在我的情况下,我必须传递给RemoteServer一个ConnectionManager。ConnectionManager需要FileAdapter和Communicator来创建ClientConnectionHandler。对我来说,这听起来有点过了。这对于tdd来说是正常的吗?还是我为了保持一切都是可测试的而做错了什么?
编辑: ClientConnectionHandler类只负责服务器端的文件同步逻辑,这意味着:遵循我自己的迷你协议从客户端接收文件。
发布于 2011-09-05 04:29:29
这很正常。如果你得到一个有很多依赖项的类,它很可能也有too many responsibilities。但是,一个类依赖于另一个类,而另一个类又依赖于另一个类,这是很正常的。
这就是为什么像Spring这样的IoC容器库很受欢迎。它们使连接(配置和解析)所有依赖项变得更容易。
https://stackoverflow.com/questions/7301896
复制相似问题