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 Refactor → Migrate 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.