Junit4でActivityへアクセスする方法からボタンクリック等の確認方法までのまとめ

Activityの単体テストを行う際に、
必要となり忘れない為に記録しておきます。

 

<Activity起動方法>

まず、Activityへアクセスするために必要な@Ruleを定義します。

今回はサンプルActivityとしてTestActivity.javaを使用。
全てのTest(@Test)で定義が必要となる為、@Ruleに記載しています。


@Rule
public IntentsTestRule<TestActivity> mIntentsRule =
new IntentsTestRule<>(TestActivity.class, false, false);

 

次に実際にActivityを起動させます。Intent的な感じです。


Intent intent = new Intent();
TestActivity activity = mIntentsRule.launchActivity(intent);


上記を各々のTest(@Test)で記載してあげることで
試験を実施することが可能となります。

 


<ボタンクリック>

onView(withId(R.id.sample_button)).perform(click());


ボタンがクリックされる処理を行ってくれます。

 

<画面遷移先の確認>

intended(hasComponent(Test2Activity.class.getName()));


画面遷移した時に、意図したActivityに遷移出来ているかを確認できます。

 

<ボタンの状態を確認>

・活性状態
assertTrue(activity.findViewById(R.id.receipt).isEnabled());

・非活性状態
assertFalse(activity.findViewById(R.id.receipt).isEnabled());


ボタンの状態が活性状態か非活性状態かを確認できます。

 

<画像の表示状態を確認>

・表示状態
assertThat(((ImageView)activity.findViewById(R.id.test)).getDrawable().isVisible(), is(true));

・非表示状態
assertThat(((ImageView)activity.findViewById(R.id.test)).getDrawable().isVisible(), is(false));


ResourceのR.id.testに画像が表示されているか確認できます。
getDrawable()を変更することで様々な表示状態を確認することが可能です。

 


初めて単体テストコードを書くので
間違えていたり認識が甘いところがあります。

コメントくれたら嬉しいです。