Эспрессо

Используйте Espresso для написания кратких, красивых и надежных тестов пользовательского интерфейса Android.

В следующем фрагменте кода показан пример теста Espresso:

Котлин

@Test
fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
}

Ява

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

Основной API небольшой, предсказуемый и простой в освоении, но при этом остается открытым для настройки. Espresso четко тестирует ожидания, взаимодействия и утверждения, не отвлекаясь на шаблонное содержимое, специальную инфраструктуру или запутанные детали реализации.

Тесты эспрессо выполняются оптимально быстро! Он позволяет вам забыть о ожиданиях, синхронизации, переходе в режим ожидания и опросах, пока он манипулирует и утверждает пользовательский интерфейс приложения, когда он находится в состоянии покоя.

Целевая аудитория

Espresso ориентирован на разработчиков, которые считают, что автоматизированное тестирование является неотъемлемой частью жизненного цикла разработки. Хотя его можно использовать для тестирования «черного ящика», полную мощь Espresso раскрывают те, кто знаком с тестируемой кодовой базой.

Возможности синхронизации

Каждый раз, когда ваш тест вызывает onView() , Espresso ожидает выполнения соответствующего действия или утверждения пользовательского интерфейса, пока не будут выполнены следующие условия синхронизации:

  • В очереди сообщений нет сообщений, которые Espresso необходимо немедленно обработать.
  • В данный момент нет экземпляров AsyncTask , выполняющих задачу.
  • Все ресурсы простоя , определенные разработчиком, простаивают.

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

Пакеты

  • espresso-core — содержит основные и базовые сопоставления View , действия и утверждения. См. Основы и рецепты .
  • espresso-web — содержит ресурсы для поддержки WebView .
  • espresso-idling-resource — механизм синхронизации Espresso с фоновыми заданиями.
  • espresso-contrib — внешние материалы, содержащие действия DatePicker , RecyclerView и Drawer , проверки доступности и CountingIdlingResource .
  • espresso-intents — расширение для проверки и заглушки намерений для испытаний на герметичность.
  • espresso-remote — расположение многопроцессной функциональности Espresso.

Вы можете узнать больше о последних версиях, прочитав примечания к выпуску .

Дополнительные ресурсы

Для получения дополнительной информации об использовании Espresso в тестах Android обратитесь к следующим ресурсам.

Образцы