Google Espresso или Robotium [закрыто]



Я должен использовать автоматизированный инструмент тестирования пользовательского интерфейса, и я смущен использованием Robotium vs Google Espresso.



каковы основные различия между двумя? Есть ли особенности, которые существуют в одном, но не в другом?

533   2  

2 ответов:

полное раскрытие: я один из авторов Эспрессо.

и эспрессо, и Robotium-это инструментальные фреймворки, то есть они используют Android Instrumentation для проверки и взаимодействия с тестируемой деятельностью.

в Google мы начали с использования Robotium, потому что это было более удобно, чем биржевые инструменты (шляпы для разработчиков Robotium для этого). Однако это не удовлетворило нашу потребность в структуре, которая сделала написание надежный тесты легко для разработчиков.

основные достижения в эспрессо над Robotium:

  1. синхронизации. По умолчанию логика тестирования инструментария выполняется в другом потоке (инструментирование), чем операции пользовательского интерфейса (обрабатываемые в потоке пользовательского интерфейса). Без синхронизации тестовых операций с обновлениями пользовательского интерфейса, тесты будут склонны к шелушению-т. е. не будет случайно из-за проблем со временем. Большинство авторов тестов игнорируют это фактически, некоторые добавляют спящие / повторные механизмы и еще меньше реализуют более сложный код безопасности потока. Ни один из них не подходит. Espresso заботится о потокобезопасности, легко синхронизируя тестовые действия и утверждения с пользовательским интерфейсом тестируемого приложения. Robotium пытается решить эту проблему с помощью механизмов сна/повтора, которые не только ненадежны, но и заставляют тесты работать медленнее, чем это необходимо.

  2. API. Эспрессо имеет небольшой, четко очерченный и предсказуемый вид API, который открыт для настройки. Вы рассказываете фреймворку, как найти элемент пользовательского интерфейса с помощью standard hamcrest matchers и затем поручите ему либо выполнить действие, либо проверить утверждение на целевом элементе. Вы можете сравнить это с API Robotium, где автор теста должен выбрать один из 30+ методов щелчка. Кроме того, Robotium раскрывает опасные методы, такие как getCurrentActivity (что означает ток в любом случае?) и getView, которые позволяют работать с объектами вне основного потока (см. пункт выше).

  3. очистить информацию об ошибке. Эспрессо стремится предоставить богатую отладочную информацию, когда происходит сбой. Кроме того, вы можете настроить способ обработки сбоев Espresso с помощью собственного обработчика сбоев. Я не пробовал это некоторое время, но предыдущие версии Robotium страдали от непоследовательной обработки сбоев (например, метод clickOnView проглотит SecurityExceptions).

В отличие от предыдущего ответа, Эспрессо поддерживается на всех версиях API со значительным количеством пользователей (см.:http://developer.android.com/about/dashboards/index.html). он работает на некоторых старых версиях, но тестирование на них было бы пустой тратой ресурсов. Кстати, о тестировании... Эспрессо тестируется при каждом изменении с помощью комплексного набора тестов (с охватом более 95%), а также большинства android приложения, разработанные компанией Google.

Эспрессо намного быстрее, чем Robotium, но работает только на некоторых версиях SDK.

Так что если вы хотите тест, который работает на всех устройствах, перейдите на Roboitum. Если нет, пойдите на эспрессо, и не забывайте, что вы будете бета-тестером еще некоторое время.

Comments

    Ничего не найдено.