AlertDialog блокирует выполнение теста Espresso - PullRequest
0 голосов
/ 27 августа 2018

Во время выполнения теста Espresso и AlertDialog запрашивается и ожидает ответа пользователя. Тест эспрессо продолжается только в том случае, если я нажму кнопку «Принять», но я хочу проверить, чтобы выполнить это событие вместо пользователя.

@Test
protected void testLogin() {
    Log.d(TAG,"testLogin");

    onView(withId(R.id.et_user)).perform(clearText())
            .perform(replaceText(USER),
                    pressImeActionButton(),
                    closeSoftKeyboard());

    onView(withId(R.id.et_passwd)).perform(clearText())
            .perform(replaceText(PASSWD), closeSoftKeyboard());

    onView(withId(R.id.bt_login)).perform(click());

    // Here is where it stops until I click accept on the alert dialog

}

UPDATE Также я заметил на своей вкладке темы следующий статус

Поток Android JUnit Runner во время работы My Android JUnit Runner thread while is running

Поток Android JUnit Runner после отображения AlertDialog enter image description here

1 Ответ

0 голосов
/ 27 августа 2018

Сначала вы можете проверить, виден ли ваш AlertDialog, проверив текст в вашем диалоге:

onView(withText("Your text in the dialog, such as title or message")).check(matches(isDisplayed()));

Если это обычный AlertDialog, то его положительная кнопка будет иметь идентификатор android.R.id.button1, поэтому вы можете нажать ее в своем тесте следующим образом:

onView(withId(android.R.id.button1)).perform(click());
...