gpt4 book ai didi

java - 尝试将生成的输入流与资源文件进行比较 - jUnit

转载 作者:行者123 更新时间:2023-12-01 11:45:55 24 4
gpt4 key购买 nike

我正在尝试将资源文件中的输入流与创建的输入流进行比较。

我按照以下方式执行此操作:

InputStream isAsJpg = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("koala.jpg");
InputStream returnedIs = ImageUtil.convertImageStreamToPdfStream(isAsJpg);

//get is from src/test/resources
InputStream expectedIs = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("koala.pdf");

对于我的测试,我正在调用:

assertTrue(IOUtils.contentEquals(expectedIs, returnedIs));

但它返回 false。因此,我开始创建文件,以便我可以手动检查文件是否为空或其他内容。所以我补充道:

File tempFile = File.createTempFile("koala", ".pdf");
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile)) {
IOUtils.copy(returnedIs, out);
}

我已经手动检查了文件的内容,看起来没问题。现在我想从资源创建一个文件,我必须检查该内容(以相同的方式)并且pdf是空的..尽管它被放置在 src/test/resource 目录中并且当我尝试打开时它在那里,它不是空的。

我做错了什么?似乎我没有以正确的方式获取资源(koala.pdf),但实际上我找不到错误..

编辑:当我去看时C:..\目标\测试类文件在那里,但是..它是空的(空白页)。虽然当我打开它时C:..\src\test\resources它不是空的。怎么会这样?

最佳答案

我找到了解决方案。

可以对 maven 说他应该替换 ${..} 类型的 Maven 占位符,而我的二进制 PDF 内容已满,因此文件已损坏。

我更改了 pom 中的过滤:

<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>false</filtering>
</testResource>
</testResources>

并且目标/测试类中的文件现在也包含图像。

关于java - 尝试将生成的输入流与资源文件进行比较 - jUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29126388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com