Framework testowania espresso - instrukcje konfiguracji

W tym rozdziale wyjaśnijmy, jak zainstalować framework espresso, skonfigurować go do pisania testów espresso i uruchomić go w naszej aplikacji na Androida.

Wymagania wstępne

Espresso to platforma do testowania interfejsu użytkownika do testowania aplikacji na Androida opracowana w języku Java / Kotlin przy użyciu zestawu SDK systemu Android. Dlatego jedynym wymaganiem espresso jest tworzenie aplikacji przy użyciu Android SDK w Javie lub Kotlin i zaleca się posiadanie najnowszego Android Studio.

Lista elementów do poprawnego skonfigurowania przed rozpoczęciem pracy w frameworku espresso przedstawia się następująco -

  • Zainstaluj najnowszy pakiet Java JDK i skonfiguruj zmienną środowiskową JAVA_HOME.

  • Zainstaluj najnowszą wersję Android Studio (wersja 3.2. Lub wyższa).

  • Zainstaluj najnowszy Android SDK za pomocą Menedżera SDK i skonfiguruj zmienną środowiskową ANDROID_HOME.

  • Zainstaluj najnowsze narzędzie Gradle Build Tool i skonfiguruj zmienną środowiskową GRADLE_HOME.

Skonfiguruj EspressoTesting Framework

Początkowo platforma testowania espresso jest dostarczana jako część biblioteki obsługi systemu Android. Później zespół Androida udostępnia nową bibliotekę systemu Android, AndroidX, i przenosi do biblioteki najnowszą wersję platformy do testowania espresso. Najnowszy rozwój (Android 9.0, poziom API 28 lub wyższy) frameworka testującego espresso zostanie wykonany w bibliotece AndroidX.

Włączenie struktury testowania espresso do projektu jest tak proste, jak ustawienie struktury testowania espresso jako zależności w pliku oceny aplikacji, app / build.gradle. Pełna konfiguracja jest następująca,

Korzystanie z biblioteki obsługi Androida,

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'
}

Korzystając z biblioteki 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 w android / defaultConfig ustawia klasę AndroidJUnitRunner do uruchamiania testów instrumentacji. Pierwsza linia w zależnościach zawiera framework testowy JUnit , druga linia w zależnościach zawiera bibliotekę testową do uruchamiania przypadków testowych, a trzecia linia w zależnościach zawiera framework testowy espresso.

Domyślnie Android studio ustawia strukturę testowania espresso (bibliotekę obsługi Androida) jako zależność podczas tworzenia projektu androida, a gradle pobierze niezbędną bibliotekę z repozytorium Maven. Stwórzmy prostą aplikację Hello world na Androida i sprawdźmy, czy framework do testowania espresso jest poprawnie skonfigurowany.

Kroki tworzenia nowej aplikacji na Androida opisano poniżej -

  • Uruchom Android Studio.

  • Wybierz Plik → Nowy → Nowy projekt.

  • Wprowadź nazwę aplikacji (HelloWorldApp) i domenę firmy (espressosamples.tutorialspoint.com), a następnie kliknij przycisk Dalej .

Aby utworzyć projekt Android,

  • Wybierz minimalne API jako API 15: Android 4.0.3 (IceCreamSandwich), a następnie kliknij Dalej.

Aby kierować reklamy na urządzenia z systemem Android,

  • Wybierz opcję Empty Activity, a następnie kliknij Next .

Aby dodać aktywność do Mobile,

  • Wprowadź nazwę dla głównego działania, a następnie kliknij Zakończ .

Aby skonfigurować działanie,

  • Po utworzeniu nowego projektu otwórz plik app / build.gradle i sprawdź jego zawartość. Zawartość pliku jest opisana poniżej,

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'
}

Ostatnia linia określa zależność struktury testowania espresso. Domyślnie skonfigurowana jest biblioteka obsługi Androida. Możemy przekonfigurować aplikację do korzystania z biblioteki AndroidX klikając w menu RefactorMigrate to AndroidX .

Aby przejść na Androidx,

  • Teraz plik app / build.gradle zmienia się, jak określono poniżej,

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'
}

Teraz ostatnia linia zawiera framework do testowania espresso z biblioteki AndroidX.

Ustawienia urządzenia

Podczas testów zalecane jest wyłączenie animacji na urządzeniu z systemem Android, które jest wykorzystywane do testów. Zmniejszy to nieporozumienia podczas sprawdzania nieaktywnych zasobów.

Zobaczmy, jak wyłączyć animację na urządzeniach z Androidem - (Ustawienia → Opcje programisty),

  • Skala animacji okna

  • Skala animacji przejścia

  • Skala czasu trwania animatora

Jeśli menu opcji programisty nie jest dostępne na ekranie Ustawienia , kliknij kilka razy Numer kompilacji dostępny w opcji Informacje o telefonie . Umożliwia to opcja dewelopera menu.