#Menuアイテムの表示を確認する
メニューアイテムはidではViewを探せないため、表示文言で探す。
HogeActivityTest.java
@Test
public void testMenuItem() {
// 表示されていることを確認する場合
onView(withText(R.string.menu_setting)).check(matches(isDisplayed()));
// 表示されていないことを確認する場合
onView(withText(R.string.menu_refresh)).check(doesNotExist());
}
#OverFlowMenu内のメニューアイテムを確認する
OverFlowMenu内のアイテムを確認するには、OverFlowMenuを開く必要がある
HogeActivityTest.java
@Test
public void testOverFlowMenuItem() {
// オーバーフローメニューを開く
openActionBarOverflowOrOptionsMenu(mActivityRule.getActivity());
// 表示されていることを確認する場合
onView(withText(R.string.menu_setting)).check(matches(isDisplayed()));
}
#OverFlowMenuが表示されているかどうかを確認する
条件によってMenuの表示非表示を切り替えている時、OverFlowMenuが表示されるかどうか知りたい時があったので調べた。
メニューを開くことができるなら、Viewも判定できるはずと思って、Espresso.javaの中からMacherを持ってきた。
HogeActivityTest.java
@Test
public void testOverFlowMenuItem() {
Matcher<View> overFlowButtonMatcher = anyOf(
allOf(isDisplayed(), withContentDescription("More options")),
allOf(isDisplayed(), withClassName(endsWith("OverflowMenuButton"))));
// 表示されていることを確認する場合
onView(overFlowButtonMatcher).check(matches(isDisplayed()));
}