【发布时间】:2011-10-17 18:14:42
【问题描述】:
我设计了实现一些服务器协议的 Java 类。例如,它有getProtocolVersion() 方法,它返回最新的协议版本。该类的对象通过InputStream和OutputStream实现连接到服务器。
我对每个服务器命令都有一个存根测试。每个测试都会创建 ByteArrayInputStream 和 ByteArrayOutputStream 以及预期的客户端请求和服务器响应,因此我可以使用 JUnit 对我的协议实现执行逻辑单元测试。它可以工作,但是为每个命令测试创建夹具(准备数据)太无聊了。
在我的情况下真的要使用模拟吗?这个解决方案不那么复杂吗?如何通过输入输出流模拟数据序列?
【问题讨论】:
-
“在我的情况下真的要使用模拟吗?”是什么意思?真的是什么?
-
是基于文本的序列。
new ByteArrayInputStream(text.getBytes()); -
彼得,我的序列包含原始字节和 UTF-8 编码字符串。
-
乔恩,我的意思是如何模拟 InputStream 和 OutputStream 实现(通过这些流的数据序列)。
标签: java mocking inputstream outputstream