У меня есть пользовательский viewpager (с отключенным отключением по причинам), работающим с tablayout. Содержимое изменяется на основе выбранной вкладки. Я хочу проверить это с помощью эспрессо: 1) Нажмите на определенную вкладку 2) Проверьте некоторые данные на определенной странице вкладки Как мне это сделать. Я новичок в эспрессо
Как установить текущую вкладку в viewpager с помощью tablayout
Ответ 1
Есть несколько способов сделать это, простой способ - выбрать элемент по заголовку вкладки, я использую этот код:
Matcher<View> matcher = allOf(withText("TAB TITLE"),
isDescendantOfA(withId(R.id.customTab)));
onView(matcher).perform(click());
SystemClock.sleep(800); // Wait a little until the content is loaded
Вам нужно только адаптировать сопряжение к макету. Затем проверьте содержимое.
Например:
onView(withId(R.id.someId)).check(matches(isCompletelyDisplayed()));
или
onView(withText(R.string.someText)).check(matches(isCompletelyDisplayed()));
Примеры можно найти здесь в разделе Задание вида просмотра: http://developer.android.com/intl/es/training/testing/ui-testing/espresso-testing.html
Если вы используете RecyclerView для отображения содержимого вкладки, посмотрите на это: Espresso RecyclerView внутри ViewPager
Ответ 2
Espresso следует использовать, когда вы четко знаете, что ожидается в пользовательском интерфейсе, и вы можете проверить его.
В вашем случае, чтобы перейти на любую вкладку, вы можете использовать действие вида, чтобы нажать на эту вкладку. Чтобы проверить данные, сначала вы должны знать, какие данные должны присутствовать на этой вкладке, а затем просто использовать сопоставления, чтобы проверить, отображаются ли они или нет.