В этой главе мы расскажем, как установить эспрессо-фреймворк, настроить его для написания эспрессо-тестов и выполнить его в нашем приложении для Android.
Предпосылки
Espresso — это среда тестирования пользовательского интерфейса для тестирования приложений Android, разработанная на языке Java / Kotlin с использованием Android SDK. Поэтому единственным требованием к эспрессо является разработка приложения с использованием Android SDK на Java или Kotlin, и рекомендуется использовать последнюю версию Android Studio.
Список элементов, которые должны быть правильно настроены перед началом работы в эспрессо-фреймворке, выглядит следующим образом:
-
Установите последнюю версию Java JDK и настройте переменную среды JAVA_HOME.
-
Установите последнюю версию Android Studio (версия 3.2. Или выше).
-
Установите последнюю версию Android SDK с помощью SDK Manager и настройте переменную среды ANDROID_HOME.
-
Установите последнюю версию Gradle Build Tool и настройте переменную среды GRADLE_HOME.
Установите последнюю версию Java JDK и настройте переменную среды JAVA_HOME.
Установите последнюю версию Android Studio (версия 3.2. Или выше).
Установите последнюю версию Android SDK с помощью SDK Manager и настройте переменную среды ANDROID_HOME.
Установите последнюю версию Gradle Build Tool и настройте переменную среды GRADLE_HOME.
Настроить EspressoTesting Framework
Изначально среда тестирования эспрессо предоставляется как часть библиотеки поддержки Android. Позже, команда Android предоставляет новую библиотеку Android, AndroidX и переносит в библиотеку новейшую разработку фреймворка для эспрессо. Последние разработки (Android 9.0, API уровня 28 или выше) фреймворка для эспрессо будут выполнены в библиотеке AndroidX.
Включить инфраструктуру тестирования эспрессо в проект так же просто, как установить среду тестирования эспрессо, как зависимость в файле gradle приложения app / build.gradle. Полная конфигурация следующая,
Используя библиотеку поддержки Android,
android { defaultConfig { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } } dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2' }
Используя библиотеку AndroidX,
android { defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.androidx.test:runner:1.0.2' androidTestImplementation 'com.androidx.espresso:espresso-core:3.0.2' }
testInstrumentationRunner в android / defaultConfig устанавливает класс AndroidJUnitRunner для запуска инструментальных тестов. Первая строка в зависимостях включает инфраструктуру тестирования JUnit , вторая строка в зависимостях включает библиотеку бегуна тестов для запуска тестовых случаев, и, наконец, третья строка в зависимостях включает инфраструктуру тестирования эспрессо.
По умолчанию Android Studio устанавливает структуру тестирования эспрессо (библиотека поддержки Android) как зависимость при создании проекта Android, и Gradle загружает необходимую библиотеку из репозитория Maven. Давайте создадим простое приложение для Android Hello World и проверим, правильно ли настроена среда тестирования эспрессо.
Шаги для создания нового приложения Android описаны ниже —
-
Запустите Android Studio.
-
Выберите Файл → Новый → Новый проект.
-
Введите имя приложения (HelloWorldApp) и домен компании (espressosamples.tutorialspoint.com) и нажмите кнопку Далее .
Запустите Android Studio.
Выберите Файл → Новый → Новый проект.
Введите имя приложения (HelloWorldApp) и домен компании (espressosamples.tutorialspoint.com) и нажмите кнопку Далее .
Чтобы создать Android-проект,
-
Выберите минимальный API в качестве API 15: Android 4.0.3 (IceCreamSandwich) и нажмите кнопку Далее.
Выберите минимальный API в качестве API 15: Android 4.0.3 (IceCreamSandwich) и нажмите кнопку Далее.
Чтобы настроить устройства Android,
-
Выберите « Пустое действие» и нажмите « Далее» .
Выберите « Пустое действие» и нажмите « Далее» .
Чтобы добавить активность в Mobile,
-
Введите имя для основной деятельности и затем нажмите Готово .
Введите имя для основной деятельности и затем нажмите Готово .
Чтобы настроить активность,
-
После создания нового проекта откройте файл app / build.gradle и проверьте его содержимое. Содержание файла указано ниже,
После создания нового проекта откройте файл app / build.gradle и проверьте его содержимое. Содержание файла указано ниже,
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.tutorialspoint.espressosamples.helloworldapp" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2' }
Последняя строка указывает зависимость фреймворка эспрессо. По умолчанию библиотека поддержки Android настроена. Мы можем перенастроить приложение для использования библиотеки AndroidX , щелкнув Refactor → Migrate to AndroidX в меню.
Чтобы перейти на Androidx,
-
Теперь app / build.gradle изменяется, как указано ниже,
Теперь app / build.gradle изменяется, как указано ниже,
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.tutorialspoint.espressosamples.helloworldapp" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' }
Теперь последняя строка включает среду тестирования эспрессо из библиотеки AndroidX.
Настройки устройства
Во время тестирования рекомендуется отключить анимацию на устройстве Android, которое используется для тестирования. Это уменьшит путаницу при проверке идеальных ресурсов.
Давайте посмотрим, как отключить анимацию на устройствах Android — (Настройки → Параметры разработчика),
-
Масштаб оконной анимации
-
Масштаб перехода анимации
-
Шкала продолжительности аниматора
Масштаб оконной анимации
Масштаб перехода анимации
Шкала продолжительности аниматора
Если меню параметров разработчика недоступно на экране « Настройки» , нажмите « Номер сборки», доступный внутри параметра « О телефоне», несколько раз. Это включает меню параметров разработчика .