Android StudioにはAndroidアプリをテストするためのフォルダが用意されている。
app→src→AndroidTestとtestフォルダが用意されている。
・AndroidTest
UIを使ったテストを行う時に使う。例えばボタンをクリックしてイベントが発生することをテストしたいとき、click()などを使って、UI操作をした時のテストを行える。
・test
ロジックファイルのテストを行う。
テスト用ライブラリ
テストをしたい場合、それに必要なライブラリがある。
使用するテスト用のライブラリは次のものです。
•JUnit
いわずとしれたJava用のユニットテストライブラリです。
•Mockito
テスト時に各クラスをMock可するためのライブラリです。
具体的には通信処理のように、テスト中に本番の動きをされたら困るコンポーネントの動きを差し替えるために使用します。
•Espresso
Android用のUIテスト用のライブラリです。
JUnitのテストコードの中で、Activityを起動したり、Viewを操作(クリックやスワイプなど)したり、表示内容を確認する機能があります。
引用https://qiita.com/cattaka/items/83f7a82ce80f352ef7c9
buildGladleの設定
以下を確認し、ない場合は追記する。
・Runnerが設定されている。
android {
defaultConfig {
//追加
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
・androidTestCompile指定でEspressoライブラリが指定されている
dependencies {
// for AndroidTest
compile 'com.android.support:support-annotations:21.0.3'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
}
参考https://tech.cookbiz.co.jp/android-463
UIテスト用サンプル
ボタンクリックをテストしたい場合の例は以下のとおりである。
public class TitleActivityTest {
//ここでテストしたいアクティビティのインスタンスを生成。@Ruleアノテーションがないとエラーが発生するので注意が必要。
@Rule
public ActivityTestRule<TitleActivity> activityTestRule = new ActivityTestRule<>(TitleActivity.class, false, false);
//テストしたいメソッド
@Test
public void onCreate() {
//この行でテストしたいアクティビティのonCreate()が呼ばれる
TitleActivity titleActivity = activityTestRule.launchActivity(null);
//ボタンのリソースIDを取得し、クリックするコード
onView(withId(R.id.goButton)).perform(click());
//その他処理+期待する結果を記述
}
}