Преимущества эспрессо перед контрольными случаями с использованием приборов

Я просмотрел документ об эспрессо. но до сих пор не получаю от этого преимуществ, так что могу перейти на эспрессо, а не на инструменты. Кто-нибудь может с этим помочь?

Что я знаю об эспрессо:

  1. Ключевым преимуществом использования Espresso является то, что он обеспечивает автоматическую синхронизацию тестовых действий с пользовательским интерфейсом тестируемого приложения.
  2. Espresso определяет, когда основной поток простаивает, поэтому он может запускать ваши тестовые команды в подходящее время, повышая надежность ваших тестов.
  3. Эта возможность также избавляет вас от необходимости добавлять какие-либо временные решения, такие как Thread.sleep(), в ваш тестовый код.

Здесь, в пункте 1, я не могу понять, как он поддерживает синхронизацию при выполнении действий.

В пункте 2, как потоки становятся простаивающими и как мы можем избежать Thread.sleep(), это ожидание элемента, пока он не отобразится на экране.

Пожалуйста, подскажите, как мне с этим поступить. Спасибо


person Community    schedule 20.03.2017    source источник
comment
Что вы имеете в виду под эспрессо, а не с инструментами? espresso - это библиотека для проведения инструментальных тестов?   -  person stamanuel    schedule 20.03.2017
comment
@stamanuel Я не понимаю, что использовать приборы или эспрессо, вы можете помочь   -  person    schedule 20.03.2017


Ответы (1)


но все еще не получаю от этого преимуществ, так что я могу перейти на эспрессо, а не на инструменты

Думаю, вы здесь кое-что путаете:

Instrumentation-Test не обязательно означает, что вы должны использовать espresso.

Обычно Instrumented Tests - это тесты, которые:

... может воспользоваться API-интерфейсами Android framework и поддерживающими API, такими как Android Testing Support Library. Источник

Это означает, что вы можете писать «классические» модульные тесты или инструментальные модульные тесты, которым, например, нужен контекст Android для запуска. Модульные тесты - это тесты, которые проверяют отдельные части вашего кода, например услуги и тому подобное.

С другой стороны, UI-тесты - это тесты, которые действительно запускаются свою активность и выполните какое-либо действие в своем приложении.

Сам по себе Espresso - это просто библиотека, которая поможет вам написать автоматизированные тесты пользовательского интерфейса. Вы можете использовать его для взаимодействия с пользовательским интерфейсом в вашем приложении (нажимайте кнопки, проверяйте содержимое представлений, ...).

Кроме того, существует библиотека ui-automator, которая может делают то же самое, но предназначены для взаимодействий с пользовательским интерфейсом, которые находятся не в вашем приложении, а, например, в системных диалогах (диалог разрешений, недавнее приложение или кнопка домой, ...) или если у вас есть тестовые примеры, которые охватывают несколько приложений.

Итак, чтобы ответить на ваш вопрос: вы не можете «отдавать предпочтение» эспрессо тестам с использованием приборов, так как эспрессо - это библиотека, используемая для автоматизированных тестов приборов.

person stamanuel    schedule 20.03.2017