Это мой вариант использования.
- Загрузить представление рециркулятора
- Щелкните элемент, который покажет диалоговое окно с радиогруппой
- Выберите переключатель (# 2) в моем тесте
- Нажмите OK
- Показать представление переработчика с обновленным текстом.
Мой модульный тест
@Test
public void onNonODeviceSwitchIsShown() throws Exception
{
onView(withText(getString(R.string.PushNotifications))).perform(click());
onView(withId(R.id.recycler_view))
.perform(RecyclerViewActions.actionOnItem(hasDescendant(withText(R.string.general_notification_tone)),
click()));
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
// Search for correct button in the dialog.
UiObject toneText = uiDevice.findObject(new UiSelector().text("Adara"));
toneText.click();
UiObject2 okButton = uiDevice.findObjects(By.clazz(Button.class)).get(1);
okButton.clickAndWait(Until.newWindow(), 5000);
onView(withId(R.id.recycler_view)).check(
ViewAssertions.matches(allOf(
withText(R.string.custom))));
}
Сбой при появлении следующего сообщения,это означает, что он не обнаруживает никаких переключателей:
androidx.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError: '(со строкой из идентификатора ресурса: <2131887061>)' не соответствует выбранномуПосмотреть. Ожидается: (со строкой из идентификатора ресурса: <2131887061>) Получено: "RecyclerView {id = 2131365043, res-name = recycler_view, видимость = VISIBLE, ширина = 1080, высота = 1584, has-focus = true, has-focusable = =true, has-window-focus = true, is-clickable = false, is-enabled = true, is-focused = true, is-focusable = true, is-layout-запрашивается = false, is-selected = false, layout-params=android.widget.FrameLayout$LayoutParams@bc6b8c6, tag = null, root-is-layout-запрашивается = false, has-input-connection = false, x = 0.0, y = 0.0, child-count = 9} "
Это диалоговое окно, которое при закрытии будет отображать вид переработчика.
Это часть представления переработчикапосле закрытия диалогового окна.
Эта строка не работает
onView(withId(R.id.recycler_view)).check(
ViewAssertions.matches(allOf(
withText(R.string.custom))));
При проверке инспектора макета ясм. следующую настройку
RelativeLayout
|
| Ab (id/title) TextView - "General"
| Ab (id/summary) TextView - "Custom"
Я не знаю, почему утверждения не выполняются, несмотря на то, что текст Custom
существует в представлении переработчика.