テキストファイルリソースをJavaユニットテストに読み込むにはどうすればいいですか? 質問する

テキストファイルリソースをJavaユニットテストに読み込むにはどうすればいいですか? 質問する

にある XML ファイルで作業する必要がある単体テストがありますsrc/test/resources/abc.xml。 ファイルの内容を に取り込む最も簡単な方法は何ですかString?

ベストアンサー1

ついに私は素晴らしい解決策を見つけました。アパッチコモンズ:

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

使用することもできますサボテン:

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();
  }
}

おすすめ記事