skip to content
私的歌詞倉庫

AndroidのRobolectricでApplicationクラスを差し替える

/ 2 min read

Updated:
Table of Contents

はじめに

Android固有のテストを書く時にRobolectricを使うことでテストを書くことができます。Robolectricを使うことでAndroidのエミュレータを立ち上げずともテストを書くことができるため、オーバーヘッドが小さくなりテスト効率がよくなるというメリットがあります。

この時にRobolectricはApplicationクラスを参照してテストが立ち上がるのですが、Applicationクラスに一部実行されたくない処理などがある場合があります(自分は外部サービスの初期化処理が動いてほしくなかったです)。

そんな時にApplicationクラスを差し替える方法を紹介します。

@Configを使う

設定は簡単で、Robolectricの@Configを使うことでApplicationクラスを差し替ることができます。

サンプルコードです。

@RunWith(AndroidJUnit4::class)
@Config(application = SampleTest.TestApplication)
class SampleTest {
// 代替のApplicationクラスを準備
class TestApplication : Application()
// 以下テストが続く…
}

終わりに

今回はRobolectricのConfigを使うことで起動するApplicationクラスを変更する方法を紹介しました。

できるだけ本番に近い環境でテストを書くのが一番ですが、このようにどうしても仕方がない場合は、Applicationクラスを変更できるのでぜひ試してみてください!

参考文献