【问题标题】:Mocking data sequences through InputStream and OutputStream通过 InputStream 和 OutputStream 模拟数据序列
【发布时间】:2011-10-17 18:14:42
【问题描述】:

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

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

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

【问题讨论】:

  • “在我的情况下真的要使用模拟吗?”是什么意思?真的是什么
  • 是基于文本的序列。 new ByteArrayInputStream(text.getBytes());
  • 彼得,我的序列包含原始字节和 UTF-8 编码字符串。
  • 乔恩,我的意思是如何模拟 InputStream 和 OutputStream 实现(通过这些流的数据序列)。

标签: java mocking inputstream outputstream


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 2018-02-25
    • 2012-08-03
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多