如何将文本文件资源读入 Java 单元测试?

新手上路,请多包涵

我有一个单元测试需要使用位于 src/test/resources/abc.xml 的 XML 文件。将文件内容放入 String 的最简单方法是什么?

原文由 yegor256 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 478
2 个回答

最后我找到了一个简洁的解决方案,感谢 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();
  }
}

原文由 yegor256 发布,翻译遵循 CC BY-SA 3.0 许可协议

开门见山:

 ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("file/test.xml").getFile());

原文由 pablo.vix 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题