首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >断言InputStream和输出流相等

断言InputStream和输出流相等
EN

Stack Overflow用户
提问于 2016-12-31 20:16:22
回答 2查看 5K关注 0票数 2

有没有什么简单的方法来测试(在Junit中)输入流的内容是否等于输出流的内容?

EN

Stack Overflow用户

发布于 2016-12-31 20:28:18

没有内置的方法,但您仍然可以测试它。这取决于你在做什么。这里有一个简单的例子..。

假设我有这个方法..。

代码语言:javascript
运行
复制
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.springframework.util.StreamUtils;

public class Stack {

    public static void copy(InputStream in, OutputStream out) {
        try {
            StreamUtils.copy(in, out);
        } catch(IOException io) {
            throw new RuntimeException("BOOM!");
        }
    }
}

我可以像这样测试这个方法...

代码语言:javascript
运行
复制
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Arrays;

import org.junit.Test;

public class StackTest {

    @Test
    public void shouldCopyFromInputToOutput() {
        byte[] contents = new byte[] { 1, 2, 3 };

        ByteArrayOutputStream out = new ByteArrayOutputStream();

        Stack.copy(new ByteArrayInputStream(contents), out);

        byte[] written = out.toByteArray();

        assert Arrays.equals(contents, written);
    }
}

因此,我并不是在测试输出流和输入流是否“相等”,而是在断言该方法的实际作用。

希望这能有所帮助。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41408217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档