Какие плюсы и минусы Espresso

«Какие плюсы и минусы Espresso» — вопрос из категории Тестирование, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:
✅ Интеграция с Android Studio и JUnit
✅ Автоматическая синхронизация с UI потоком (не нужно писать sleep)
✅ Читаемый API (напоминает человеческий язык)
✅ Поддержка IdlingResource для асинхронных операций

Минусы:
❌ Только для UI-тестов (не подходит для unit-тестирования)
❌ Медленнее, чем Robolectric (требует эмулятор/устройство)
❌ Сложность тестирования WebView и нативных компонентов

Пример:

@Test  
fun testLoginButton() {  
    onView(withId(R.id.login_button))  
        .perform(click())  
    onView(withText("Welcome"))  
        .check(matches(isDisplayed()))  
}