Android StudioでJunit4を使ったテストを実行する方法は、今のところ2通りあるみたいです。
TestRunnerを指定して行う(android-junit4を使う) Robolectricを使う TestRunnerを指定した方法だと、IDEでテストの実行結果が確認できるので便利です。ただし、設定がややこしいのが不便なところです。簡単に取り込める方法があれば教えて欲しいです。
対してRobolectricを使う場合は、テストの実行結果をブラウザで確認しなければならないというデメリットはありますが、導入方法が比較的簡単です。今回はRobolectricを使ってJunit4によるユニットテストを実施する手順を紹介します。
Qiitaのこちらの記事があってようやくまともに入れることができました。感謝感謝。
1. プロジェクトを作成する Android StudioのメニューからFile > New Projectを選択し、新規プロジェクトを作成します。単にプロジェクトを作成するだけです。別に既存のプロジェクトを使うなら飛ばして問題無いです。
2. build.gradleの編集 プロジェクトルートのbuild.gradleにclasspath 'org.robolectric:robolectric-gradle-plugin:0.13.+'を追記します。(app/build.gradleではないです)
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.13.2' classpath 'org.robolectric:robolectric-gradle-plugin:0.13.+' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } 新規プロジェクトの場合、build.gradleがこうなればOKです。(この例ではAndroid Studio 0.8.14を使っています)
3. app/build.gradleの編集 やることは3つです。
apply plugin: ‘robolectric’の追加 dependenciesの追加 robolectricディレクティブの追加 apply pluginの追加 app/build.gradleの2行目(apply plugin: 'com.android.application'のすぐ下)にapply plugin: 'robolectric'を追加します。
dependenciesの追加 RobolectricとJunit4を追加をします。
androidTestCompile 'org.robolectric:robolectric:2.3' androidTestCompile 'junit:junit:4.11' robolectricディレクティブの追加 robolectric-gradle-pluginのサンプルを利用してコピペします。
そのままだとGradle Syncがうまくいかないので、一部削除しています。
robolectric { // configure the set of classes for JUnit tests include '**/*Test.