java - 通过InputStream和OutputStream模拟数据序列

标签 java mocking inputstream outputstream

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

我对每个服务器命令的 stub 进行了测试。每个测试都会创建带有预期客户端请求和服务器响应的 ByteArrayInputStream 和 ByteArrayOutputStream ,以便我可以使用 JUnit 对协议(protocol)实现执行逻辑单元测试。它可以工作,但是为每个命令测试创建固定装置(准备数据)太无聊了。

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

最佳答案

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

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

关于java - 通过InputStream和OutputStream模拟数据序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797791/

相关文章:

Mock 构造函数中的 Python PropertyMock

c# - 单元测试 - 模拟 - 可覆盖的问题 - 扩展方法

java - 如何检测(读取中的关闭输入)

JAVA:InputStream.read中的字节数组分配(byte[] b, int off, int len)

java - 是否有任何用 Java 编写的正则表达式优化器?

java - 如何设置一个 Servlet 作为 Java 主页运行?

c# - XUnit 如何对业务对象进行单元测试,我应该模拟所有内容吗?

java - 从输入流创建文件

java - 为什么这个字节不会导致异常?

java - java中如何查找字符串中的空格分隔字符?