我有一个单元测试需要使用位于 src/test/resources/abc.xml
中的 XML 文件。将文件内容放入 String
的最简单方法是什么?
最佳答案
感谢Apache Commons,我终于找到了一个巧妙的解决方案:
package com.example;
import org.apache.commons.io.IOUtils;
public class FooTest {
@Test
public void shouldWork() throws Exception {
String xml = IOUtils.toString(
this.getClass().getResourceAsStream("abc.xml"),
"UTF-8"
);
}
}
完美运行。文件 src/test/resources/com/example/abc.xml
已加载(我使用的是 Maven)。
如果将 "abc.xml"
替换为 "/foo/test.xml"
,则会加载此资源:src/test/resources/foo/test.xml
您也可以使用Cactoos :
package com.example;
import org.cactoos.io.ResourceOf;
import org.cactoos.io.TextOf;
public class FooTest {
@Test
public void shouldWork() throws Exception {
String xml = new TextOf(
new ResourceOf("/com/example/abc.xml") // absolute path always!
).asString();
}
}
关于java - 如何将文本文件资源读入 Java 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891375/