Я пишу некоторые эспрессоты для приложения, которое я недавно сделал. Я использую NavigationView внутри DrawerLayout в качестве скользящего меню.Android espresso test NavigationView
мне удалось открыть ящик таким образом:
onView(withId(R.id.drawer_layout)).perform(open());
Это работает, так что теперь я пытаюсь выполнить щелчок на MenuItem в NavigationView.
onView(withId(R.id.nav_register))..
не может найти свое мнение. Я пробовал несколько вещей, но я не могу найти способ получить представление menuitem. Это путь элементы назначаются в коде:
<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" />
и 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>
Я читал кое-что о NavigationViewMenuItem является частным членом и не доступен. Кто-нибудь может мне помочь?
Приветствует! Shenno
Это звучит как идентификатор пунктов меню не то же самое, как мнения, которые создаются для меню. Возможно, используйте другой матчи, чтобы найти представление по его тексту, а не по его идентификатору? –
Чтобы помочь другим, которые получили здесь проблемы с взаимодействием с ящиком, использовать «.perform (open)», вы должны добавить зависимость: androidTestCompile 'com.android.support.test.espresso: espresso-contrib: 3.0.1' – Kunami