Solución:
El espresso tiene openActionBarOverflowOrOptionsMenu(Context context)
método para abrir el menú de la barra de acciones. Debe ponerlo antes de su acción de prueba en los elementos del menú.
import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
@Test
public void testClickInsertItem() {
openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getInstrumentation().getTargetContext());
onView(withId(R.id.action_insert)).perform(click());
}
Espero que pueda ayudar a alguien con collaspingtoolbar
Tengo el siguiente diseño de menú.
Después de usar Espresso Recorder, descubrí que el botón de menú se hace clic con withContentDescription
función
Yo también usé ToolBar
y CollapsingToolbarLayout
en el xml, lo que hice en las pruebas fue usar el withContentDescription
para abrir el menú.
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_more"
android:icon="@drawable/ic_more_vert_white_24dp"
android:title="@string/menu_action_more"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_login"
android:icon="@drawable/ic_account_circle_black_24dp"
android:orderInCategory="100"
android:title="@string/menu_login" />
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:orderInCategory="100"
android:title="@string/menu_settings" />
<item
android:id="@+id/action_about"
android:icon="@drawable/ic_info_black_24dp"
android:orderInCategory="100"
android:title="@string/menu_about" />
</menu>
</item>
</menu>
MainTest.java
@Test
public void menu_Login() {
onView(withContentDescription(R.string.menu_action_more))
.perform(click());
onView(withText("Login")).perform(click());
intended(hasComponent(LoginActivity.class.getName()));
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)