我设计了实现某些服务器协议(protocol)的 Java 类。例如,它有 getProtocolVersion() 方法,该方法返回最新的协议(protocol)版本。该类的对象通过InputStream
和OutputStream
实现连接到服务器。
我对每个服务器命令的 stub 进行了测试。每个测试都会创建带有预期客户端请求和服务器响应的 ByteArrayInputStream 和 ByteArrayOutputStream ,以便我可以使用 JUnit 对协议(protocol)实现执行逻辑单元测试。它可以工作,但是为每个命令测试创建固定装置(准备数据)太无聊了。
在我的例子中真的要使用模拟吗?这个解决方案是不是不太复杂?如何通过输入和输出流模拟数据序列?
最佳答案
您可以将Streams
包装在一个更容易创建和断言的对象中。这可以用于端到端测试。
对于单元测试,您可以将逻辑提取到可独立测试的方法中,而无需设置复杂的装置。
关于java - 通过InputStream和OutputStream模拟数据序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797791/