LoginSignup
0
0

More than 3 years have passed since last update.

[ AndroidTest ] esspressoを使う

Posted at

Android StudioにはAndroidアプリをテストするためのフォルダが用意されている。
app→src→AndroidTestとtestフォルダが用意されている。

スクリーンショット (183).png

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

        //その他処理+期待する結果を記述
    }
}
0
0
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
0
0