java - 使用 TDD : File Synchronization with Client/Server

标签 java tdd client-server

我开始尝试学习 tdd 并想在实际项目中使用它。所以我决定用java编写一个简单的文件同步客户端和服务器。 或多或少完成客户端部分后,我在编写服务器部分时卡住了。

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

现在这是我的问题:

This image展示了我想象中的一切可能的样子,其中绿色部分已完成,黄色部分尚未实现。

在我的例子中,我必须将 RemoteServer 传递给 ConnectionManagerConnectionManager 需要一个 FileAdapter 和一个 Communicator 才能创建一个 ClientConnectionHandler。对我来说,这听起来有点过分了。这对于 tdd'ing 来说是正常的还是我为了让所有内容都可测试而做错了什么?

编辑:ClientConnectionHandler 类只负责服务器端的文件同步逻辑,这意味着:按照我自己的迷你协议(protocol)从客户端接收文件。

最佳答案

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

这就是为什么 IoC容器库,如 Spring很受欢迎。它们使连接(配置和解析)所有依赖项变得更加容易。

关于java - 使用 TDD : File Synchronization with Client/Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301896/

相关文章:

java - 使用 Java fork 和删除特权

java - 不使用 length 属性计算数组的长度

javascript - Buster.js - ReferenceError : assert is not defined, 我哪里做错了?

rspec - 是否有针对属性确切长度的 rspec 测试?

ruby-on-rails - Pluralsight RSpec 正确的方式 : Wrong Number of Arguments for expect(client. url).to eq

macos - postgresql 客户端溢出

c++ - 为什么我的缓冲区在多次 read() 之后保存相同的数据?

java - 混淆按键跳跃案例

java - 删除neo4j中的多个节点及其关系

java - 如何运行 oracle 客户端服务器教程?