1. ホーム

[解決済み] Javaユニットテストにテキストファイルのリソースを読み込むには?

2022-04-01 10:48:17

質問

にあるXMLファイルを処理する必要があるユニットテストがあります。 src/test/resources/abc.xml にファイルの中身を取り込むだけの最も簡単な方法は何でしょうか? String ?

どのように解決するのですか?

ついに、私はきちんとした解決策を見つけました。 アパッチコモンズ :

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