通过InputStream和OutputStream模拟数据序列

时间:2011-10-17 18:14:42

标签: java mocking inputstream outputstream

我设计了实现一些服务器协议的Java类。例如,它具有getProtocolVersion()方法,该方法返回最新的协议版本。此类的对象通过InputStreamOutputStream实现连接到服务器。

我对每个服务器命令都有一个存根测试。每个测试都会创建ByteArrayInputStreamByteArrayOutputStream预期的客户端请求和服务器响应,因此我可以使用JUnit对我的协议实现执行逻辑单元测试。它是有效的,但为每个命令测试创建夹具(准备数据)太无聊了。

在我的情况下真的使用模拟吗?这个解决方案不太复杂吗?如何通过输入和输出流模拟数据序列?

1 个答案:

答案 0 :(得分:1)

您可以将Streams包装在一个更容易创建和断言的对象中。这可用于端到端测试。

对于单元测试,您可以将逻辑提取到可独立测试的方法中,而无需设置复杂的夹具。