LoginSignup
4
1

More than 3 years have passed since last update.

Androidの単体テストでファイルを参照する

Posted at

Androidの単体テストでファイルを読み取りたい時があります。
たとえばretrofitのAPIをテストする場合、MockWebServerからのjsonレスポンスをソースコードでなくファイルとして保存しておきたいかもしれません。
テストの本質ではないので、テストのために冗長なファイル読み取りのコードを書きたくないですよね。
本エントリではAndroidの単体テストで簡単にファイルの内容を読み取る方法を紹介します。

ファイル保存場所

テストクラスが test/java/com/example/HogeTest.kt の場合、読み取りたいファイルは test/resources/com/example/ に保存します。
パッケージ名と同じディレクトリ構成にすると簡単にアクセスできわかりやすいので便利です。

読み取りコード

テストケースからは次のようにしてファイルの内容を読み込むことができます。

class HogeTest {
    @Test
    fun hoge(){
        val jsonString = IOUtils.toString(javaClass.getResourceAsStream("response.json"), StandardCharsets.UTF_8)
    }

    // runBlockingを使う場合
    @Test
    fun hoge2() = runBlocking {
        val jsonString = IOUtils.toString(this@HogeTest.javaClass.getResourceAsStream("response.json"), StandardCharsets.UTF_8)
    }
}

IOUtils は以下の依存を追加することで使用できます。


    testImplementation "commons-io:commons-io:2.6"

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1