Ответ 1
Начиная с Android Studio 1.1 существует (экспериментальная) unit test поддержка. Несколько цитат из этой страницы:
Вам нужно будет указать ваши зависимости тестирования в файле build.gradle файл вашего андроидного модуля. Например:
dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" }
Чтобы использовать поддержку тестирования модулей в AS, вам необходимо выполнить следующие шаги:
Обновите build.gradle, чтобы использовать плагин версии android gradle версии 1.1.0-rc1 или более поздней версии (либо вручную в файле build.gradle, либо в интерфейсе пользователя в файле > Структура проекта)
Добавьте необходимые зависимости тестирования к app/build.gradle(см. выше).
Включите функцию тестирования устройства в настройках > gradle > Экспериментальный.
Синхронизировать проект.
Откройте окно инструмента "Варианты исполнения" (слева) и измените тестовый артефакт на "Единичные тесты".
Создайте каталог для вашего исходного кода тестирования, то есть src/test/java. Вы можете сделать это из командной строки или используя Вид проекта в окне инструмента проекта. Новый каталог должен быть выделены зеленым цветом в этот момент. Примечание: имена источника теста каталоги определяются плагином gradle на основе соглашения.
- Создайте свой тест. Вы можете сделать это, открыв класс, щелкнув его имя правой кнопкой мыши и выбрав "Перейти к > Тест". Добавить тест случаев.
- Щелкните правой кнопкой мыши новый класс или метод тестирования и выберите "Выполнить...".
- (Необязательно) Вы можете уменьшить время компиляции, используя gradle напрямую. Для этого перейдите в меню "Выполнить" и выберите "Изменить конфигурации". Там найдите шаблон JUnit по умолчанию, удалите Шаг "Сделать" перед запуском и добавьте шаг "Gradle know make" (оставьте имя задачи пустым).
Важно знать, что существует два типа тестов: androidTest
и plain test
.
-
androidTest
- это, прежде всего, тесты, которые вы запускаете на эмуляторе или устройстве, например, контрольно-измерительные тесты. Из командной строки вы используете./gradlew connectedCheck
для их запуска. -
test
предназначен для тестов, которые вы не хотите запускать на устройстве, таких как unit test, которые вы написали. Вы запускаете./gradlew test
для запуска этих тестов.
Как указано в цитате, вы переключаетесь между androidTest
и test
в Android Studio, изменяя тестовый артефакт.
Естественно, что не рекомендуется запускать тесты на устройстве или эмуляторе, так как это ускоряет процесс тестирования. Благодаря новой экспериментальной поддержке unit test вы получаете доступ к обрезаемому API Android без использования устройства. Это позволяет вам перемещать больше тестов с androidTest
на test
.