Android espresso test NavigationView
Estoy escribiendo algunos espressotests para una aplicación que hice recientemente. Estoy utilizando una NavigationView dentro de un DrawerLayout como menú deslizante.
Me las arreglé para abrir el cajón de esta manera:
- ¿Cómo podemos usar espresso para probar una actividad de configuración de Android con un PreferenceFragment?
- El recurso de ralentí Espresso no funciona
- Prueba de interfaz de usuario de Espresso para Android: falla en la ejecución de la prueba: Error en la ejecución de la instrumentación debido a 'java.lang.IllegalAccessError'
- Prueba Espresso NestedScrollView - "Error al ejecutar 'desplazamiento a' en vista 'con id:"
- Espresso - verificar qué actividad se abre con la intención de pulsar el botón?
onView(withId(R.id.drawer_layout)).perform(open());
Esto funciona así que ahora estoy tratando de realizar un clic en un menuitem en el NavigationView.
onView(withId(R.id.nav_register))..
No puede encontrar la vista. He intentado varias cosas, pero no puedo encontrar una manera de recuperar la vista menuitem. Esta es la forma en que los elementos se asignan en el código:
<android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" />
Y activity_main_drawer.xml
<group android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_menu_home" android:title="Home" /> <item android:id="@+id/nav_register" android:icon="@drawable/ic_menu_register" android:title="Registreer" /> <item android:id="@+id/nav_login" android:icon="@drawable/ic_menu_login" android:title="Log in" /> <item android:id="@+id/nav_play" android:icon="@drawable/ic_menu_play" android:title="Speel sessie" /> <item android:id="@+id/nav_logout" android:icon="@drawable/ic_menu_logout" android:title="Log uit" /> </group>
He leído algo sobre NavigationViewMenuItem es un miembro privado y no accesible. ¿Alguien me puede ayudar?
Saludos! Shenno
- Descartar el cuadro de diálogo de alerta en Android Espresso Test
- Cómo probar los valores de TextInputLayout (sugerencia, error, etc.) usando Android Espresso?
- Espresso prueba pegado / inactivo después de realizar (haga clic ()) en el botón en ViewAnimator
- Valor de archivo de cadena de lectura Espresso
- ¿Cómo obtener una lista de elementos en espresso?
- Prueba Espresso en un módulo separado
- Espresso NestedScrollView
- Android: activar un botón
En realidad, la vista que representa el elemento de menú no conoce el ID del elemento de menú en Android. Como resultado el método withId()
no funciona en Espresso con elementos de menú específicamente. Le sugiero que utilice el método withText
:
onView(withText("the item title")).
Si usted quiere pegarse a la identificación entonces usted puede utilizar:
onView(withId(R.id.nav_view)).perform(NavigationViewActions.navigateTo(R.id. nav_register));
- Las colecciones de Kotlin lanzan ClassNotFoundException en Android
- Android – establece targetSdkVersion a 22 para evitar permisos de tiempo de ejecución, ¿cuáles son los posibles problemas?