Лучшие практики для модульного тестирования Android?


Я разрабатываю мобильное приложение для android. Каковы наиболее распространенные библиотеки / фреймворки, используемые для модульного тестирования Android? Я чувствую, что большая часть бизнес-логики, тестирования баз данных, тестирования веб-сервисов может быть выполнена с помощью JUnit.

Однако, каков наилучший подход для тестирования пользовательского интерфейса, рабочего процесса пользовательского интерфейса и т. д.? Например, как мы можем проверить, если приложение Android запускает веб-браузер успешно? Или как мы можем подтвердить, что кнопки, определенные вещи нажимаются успешно? Или если загружены изображения успешно?

3 13

3 ответа:

Я использую JUnit для модульного тестирования и Robolectric для инструментальных тестов.

Эта статья показывает вам пример Hello World с Robolectric

В последнее время я изучал интеграционное тестирование в Android с использованием Arquillian Droidium.

Если вы хотите протестировать некоторый код, который использует REST API, вы можете имитировать его с помощью WireMock. С помощью этой библиотеки вы можете имитировать API REST с помощью кода или даже развернуть макет HTTP сервер в вашей собственной машине и настроить свои собственные издевательские сопоставления.

Для REST API mocks я также рекомендую использовать Mockable.io .

2017 ответ

Документация для Android содержит тематическую серию под названиемРекомендации по тестированию . Я бы начал с этого. Локальные модульные тесты и инструментальные тесты настраиваются по умолчанию при запуске нового проекта. Общий совет заключается в том, чтобы по возможности использовать локальные модульные тесты. Иногда для этого требуется издеваться над объектом, использующим Android API. Документация рекомендует использовать Mockito в этих случаях. Когда тесты пользовательского интерфейса (инструментальные тесты) должны быть выполнены, Android предоставляет платформу Espresso. Существуют также другие доступные инструменты, такие как Exerciser Monkey (Для стресс-тестирования) и UI Automator (для тестирования взаимодействия нескольких приложений).

Пример

Смотрите этот ответ о том, как начать работу с тестами в Android Studio.

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