Лучшие практики для модульного тестирования Android?
Я разрабатываю мобильное приложение для android. Каковы наиболее распространенные библиотеки / фреймворки, используемые для модульного тестирования Android? Я чувствую, что большая часть бизнес-логики, тестирования баз данных, тестирования веб-сервисов может быть выполнена с помощью JUnit.
Однако, каков наилучший подход для тестирования пользовательского интерфейса, рабочего процесса пользовательского интерфейса и т. д.? Например, как мы можем проверить, если приложение Android запускает веб-браузер успешно? Или как мы можем подтвердить, что кнопки, определенные вещи нажимаются успешно? Или если загружены изображения успешно?
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. Я еще не пробовал, но это похоже на то, что вы искали.