Сценарий - это когда пользователь нажимает кнопку "Загрузить", данные (музыка/изображение и т.д.) начинают загружаться из Интернета. Когда загрузка будет завершена, кнопка изменит текст метки на "Открыть". Затем пользователь нажимает кнопку "Открыть". Я сделал sofar:
onView(allOf(withId(R.id.button),withText("Download"))).check(matches(isClickable())).perform(click());
try {
Thread.sleep(delayedTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
onView(allOf(withId(R.id.button),withText("Open"))).check(matches(isClickable())).perform(click());
Иногда проходит тест, иногда это не так. Причина, по которой она иногда терпит неудачу, - это "No views in hierarchy found matching: (with id: something:id/button and with text: is "Open").
И я знаю, что использование Thread.sleep в Espresso - тоже плохая практика. Я читал о Espresso Idling Resource, но для меня это не имеет смысла, и я не знаю, как я могу применить это в этом конкретном случае.