Ответ
Да, писал UI-тесты с использованием Espresso и UI Automator. Espresso удобен для тестирования внутри приложения, а UI Automator — для кросс-приложенных сценариев.
Пример теста на Espresso:
@Test
fun loginButton_click_showsWelcomeMessage() {
onView(withId(R.id.login_button)).perform(click())
onView(withText("Welcome!")).check(matches(isDisplayed()))
}
Нюансы:
- Тесты хрупкие из-за изменений в UI.
- Требуют стабильного окружения (эмулятор/устройство).
- Желательно использовать IdlingResource для асинхронных операций.
Для сложных сценариев комбинирую Espresso с MockWebServer для мокирования API.