3
我在操作欄中有一個按鈕,其中的圖標根據布爾值進行更改。我想檢查使用哪種可繪製資源。如何在Espresso中測試ActionMenuItemView的圖標
這裏就是圖標改變了代碼:
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem item = menu.findItem(R.id.menu_favorite);
if(mIsFavorite)
item.setIcon(R.drawable.ab_icon_on);
else
item.setIcon(R.drawable.ab_icon_off);
}
當圖標需要改變,菜單是無效的:
// request menu update
supportInvalidateOptionsMenu();
最後,我的咖啡代碼,我想檢查結果:
@Test
public void action_setUnsetFavorite() {
// check favorite off
onView(withImageDrawable(R.drawable.ab_icon_off))
.check(matches(isDisplayed()));
// click favorite button
onView(withId(R.id.menu_favorite))
.perform(click());
// check favorite on
onView(withImageDrawable(R.drawable.ab_icon_on))
.check(matches(isDisplayed()));
請注意,我正在使用自定義匹配程序找到here。