je l'élément de menu suivant que je veux cliquer à l'aide Espresso:Espresso - Cliquez sur l'article de menu avec application: showAsAction = « ifRoom »
<item
android:id="@+id/action_save"
android:icon="@drawable/vector_image_save"
android:orderInCategory="4"
android:title="@string/menu_action_save"
app:showAsAction="ifRoom"/>
En raison de ifRoom
, dans certains dispositifs, le menu est affiché comme icône dans la barre d'action tandis que dans les plus petits appareils, il est montré sous le "plus d'options".
je pouvais utiliser le code ci-dessous pour taper sur l'icône Enregistrer dans la barre d'action: onView(withId(R.id.action_save)).perform(click());
Et je pouvais utiliser le code ci-dessous pour taper sur Enregistrer si elle est présente sous les « plus d'options »: openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getTargetContext()); onView(withText(R.string.menu_action_save)).perform(click());
Je veux une méthode de test unique qui fonctionnerait dans les deux cas.
FYI Il existe une solution élégante dans la réponse suivante https://stackoverflow.com/a/40864574/340175 – JulianHarty