Подождите, пока вид будет нарисован - эспрессо

Я работаю с Espresso, чтобы написать тест для своего приложения для Android.

Я могу использовать onView() для получения ссылок на представления, затем проверять их и запускать действия.

Моя проблема возникает, когда я получаю данные из фоновой задачи. эспрессо ждет, пока задача не будет завершена, затем я делаю снимок экрана. К сожалению, активность еще не отобразила представления с данными на экране. поэтому я получаю снимок экрана за долю секунды до того экрана, который мне нужен.

Как я могу обойти это?


person jiduvah    schedule 03.07.2014    source источник
comment
Не могли бы вы предоставить часть своего кода?   -  person lacton    schedule 06.07.2014


Ответы (1)


В зависимости от ситуации, один из них должен работать.

Перед тем, как сделать снимок экрана, вы можете проверить, отображается ли представление:

onView(withId(R.id.id_of_view_to_be_screenshoted)).check(ViewAssertions.matches(isDisplayed()));

Кроме того, вы можете сделать это (на основе идеи @ValeraZakharov):

    onView(withId(R.id.id_of_view_to_be_screenshoted)).perform(new ViewAction() {
         ......
        public void perform(UiController uiController, View view) {
            uiController.loopMainThreadUntilIdle();
        }
    });
person yogurtearl    schedule 10.07.2014