Система тестирования эспрессо - Инструкции по настройке

В этой главе давайте разберемся, как установить фреймворк эспрессо, настроить его для написания тестов эспрессо и выполнить его в нашем приложении для Android.

Предпосылки

Espresso - это среда тестирования пользовательского интерфейса для тестирования приложений Android, разработанная на языке Java / Kotlin с использованием Android SDK. Следовательно, единственное требование espresso - разработать приложение с использованием 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.

Настроить платформу 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.

  • Выберите File → New → New Project.

  • Введите имя приложения (HelloWorldApp) и домен компании (espressosamples.tutorialspoint.com), а затем нажмите Далее .

Чтобы создать проект Android,

  • Выберите минимальный API в качестве API 15: Android 4.0.3 (IceCreamSandwich) и нажмите Далее.

Чтобы настроить таргетинг на устройства Android,

  • Выберите « Пустое действие» и нажмите « Далее» .

Чтобы добавить действие в Mobile,

  • Введите название основного действия и нажмите Готово .

Чтобы настроить Activity,

  • После создания нового проекта откройте файл 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 , щелкнув RefactorMigrate to AndroidX в меню.

Чтобы перейти на Androidx,

  • Теперь 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 - (Настройки → Параметры разработчика),

  • Масштаб анимации окна

  • Масштаб анимации перехода

  • Шкала продолжительности аниматора

Если меню параметров разработчика недоступно на экране « Параметры» , несколько раз нажмите « Номер сборки», доступный в параметре « О телефоне» . Это включает меню параметров разработчика .