0
1

More than 3 years have passed since last update.

[ Android ] esspressoでのテストコードサンプル

Posted at

前回、AndroidTestで必要となるesspressoとサンプルコードをついて紹介した。
今回はより具体的なコードを紹介する。

Spinnerの選択

UIテストでSpinnerをクリックするコードは以下のとおりである。

//spinnerの選択肢で"hoge"と表示されている選択肢をクリックする
onData(allOf(is(instanceOf(String.class)), is("hoge"))).perform(click());

Buttonの有効性を確かめる

例えばボタンが有効状態かどうか確かめるには以下のコードを書く

//リソースIDがR.id.buttonが有効かどうか検証
onView(withId(R.id.button)).check(matches(isEnabled()));

BACKキーを押す

クリックにはclick()があったが、BACKキーにもメソッドがある。

Espresso.pressBack();

スクロールする

スクロールしてから、クリックなどしたい場合は以下のように書く。

//R.id.NEXT_ACTIVITYの位置までスクロールし、クリックする
onView(withId(R.id.NEXT_ACTIVITY)).perform(scrollTo(), click());

Activityの生成を確かめる

確認にはActivityMonitorを使う
ActivityMonitorを作成し、Instrumentation.addMonitor()で登録。
これより後に起動したActivityのインスタンスを取得できる。。

        Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(SessionDetailActivity.class.getCanonicalName(), null, false);
        InstrumentationRegistry.getInstrumentation().addMonitor(monitor);

登録後の起動確認コードは以下のとおりである。

            Activity nextActivity = monitor.waitForActivityWithTimeout(5000);
            assertThat(nextActivity, Matchers.is(Matchers.notNullValue()));
            nextActivity.finish();

0
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
0
1