Android Espresso: невозможно обнаружить видимый текст в тесте эспрессо - PullRequest
0 голосов
/ 02 октября 2019

Это мой вариант использования.

  1. Загрузить представление рециркулятора
  2. Щелкните элемент, который покажет диалоговое окно с радиогруппой
  3. Выберите переключатель (# 2) в моем тесте
  4. Нажмите OK
  5. Показать представление переработчика с обновленным текстом.

Мой модульный тест

@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} "

Это диалоговое окно, которое при закрытии будет отображать вид переработчика.

Dialog containing Radio Buttons

Это часть представления переработчикапосле закрытия диалогового окна.

Recycler View

Эта строка не работает

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 существует в представлении переработчика.

...