Espresso Testing Framework - Anweisungen zur Einrichtung

Lassen Sie uns in diesem Kapitel verstehen, wie Sie das Espresso-Framework installieren, es so konfigurieren, dass Espresso-Tests geschrieben und in unserer Android-Anwendung ausgeführt werden.

Voraussetzungen

Espresso ist ein Framework zum Testen von Benutzeroberflächen zum Testen von Android-Anwendungen, die in Java / Kotlin-Sprache mit Android SDK entwickelt wurden. Daher muss Espresso nur die Anwendung mit dem Android SDK in Java oder Kotlin entwickeln. Es wird empfohlen, über das neueste Android Studio zu verfügen.

Die Liste der Elemente, die ordnungsgemäß konfiguriert werden müssen, bevor wir mit der Arbeit im Espresso-Framework beginnen, lautet wie folgt:

  • Installieren Sie das neueste Java JDK und konfigurieren Sie die Umgebungsvariable JAVA_HOME.

  • Installieren Sie das neueste Android Studio (Version 3.2 oder höher).

  • Installieren Sie das neueste Android SDK mit dem SDK Manager und konfigurieren Sie die Umgebungsvariable ANDROID_HOME.

  • Installieren Sie das neueste Gradle Build Tool und konfigurieren Sie die Umgebungsvariable GRADLE_HOME.

Konfigurieren Sie das EspressoTesting Framework

Zunächst wird das Espresso-Test-Framework als Teil der Android-Support-Bibliothek bereitgestellt. Später stellt das Android-Team eine neue Android-Bibliothek, AndroidX, zur Verfügung und verschiebt die neueste Entwicklung des Espresso-Test-Frameworks in die Bibliothek. Die neueste Entwicklung (Android 9.0, API-Level 28 oder höher) des Espresso-Test-Frameworks wird in der AndroidX-Bibliothek durchgeführt.

Das Einfügen eines Espresso-Testframeworks in ein Projekt ist so einfach wie das Festlegen des Espresso-Testframeworks als Abhängigkeit in der Anwendungsgradle-Datei app / build.gradle. Die vollständige Konfiguration ist wie folgt:

Verwenden der Android-Unterstützungsbibliothek,

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

Verwenden der AndroidX-Bibliothek,

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 in der android / defaultConfig legt die AndroidJUnitRunner- Klasse fest, um die Instrumentierungstests auszuführen. Die erste Zeile in den Abhängigkeiten enthält das JUnit- Testframework, die zweite Zeile in den Abhängigkeiten enthält die Testrunner-Bibliothek zum Ausführen der Testfälle und schließlich enthält die dritte Zeile in den Abhängigkeiten das Espresso-Testframework.

Standardmäßig legt Android Studio das Espresso-Test-Framework (Android-Unterstützungsbibliothek) als Abhängigkeit fest, während das Android-Projekt erstellt wird, und gradle lädt die erforderliche Bibliothek aus dem Maven-Repository herunter. Lassen Sie uns eine einfache Android-Anwendung von Hello World erstellen und prüfen, ob das Espresso-Testframework ordnungsgemäß konfiguriert ist.

Die Schritte zum Erstellen einer neuen Android-Anwendung werden nachfolgend beschrieben:

  • Starten Sie Android Studio.

  • Wählen Sie Datei → Neu → Neues Projekt.

  • Geben Sie den Anwendungsnamen (HelloWorldApp) und die Unternehmensdomäne (espressosamples.tutorialspoint.com) ein und klicken Sie dann auf Weiter .

So erstellen Sie ein Android-Projekt:

  • Wählen Sie die Mindest-API als API 15: Android 4.0.3 (IceCreamSandwich) aus und klicken Sie dann auf Weiter.

Um auf Android-Geräte abzuzielen,

  • Wählen Sie Leere Aktivität und klicken Sie dann auf Weiter .

Um Mobile eine Aktivität hinzuzufügen,

  • Geben Sie den Namen für die Hauptaktivität ein und klicken Sie dann auf Fertig stellen .

So konfigurieren Sie die Aktivität:

  • Sobald ein neues Projekt erstellt wurde, öffnen Sie die Datei app / build.gradle und überprüfen Sie deren Inhalt. Der Inhalt der Datei ist unten angegeben,

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

Die letzte Zeile gibt die Abhängigkeit des Espresso-Test-Frameworks an. Standardmäßig ist die Android-Unterstützungsbibliothek konfiguriert. Sie können die Anwendung für die Verwendung der AndroidX- Bibliothek neu konfigurieren , indem Sie im Menü auf RefactorZu AndroidX migrieren klicken .

Um auf Androidx zu migrieren,

  • Jetzt ändert sich die app / build.gradle wie unten angegeben.

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

Jetzt enthält die letzte Zeile das Espresso-Test-Framework aus der AndroidX-Bibliothek.

Geräteeinstellungen

Während des Tests wird empfohlen, die Animation auf dem Android-Gerät zu deaktivieren, das zum Testen verwendet wird. Dies verringert die Verwirrungen beim Überprüfen der Leerlaufressourcen.

Lassen Sie uns sehen, wie Sie die Animation auf Android-Geräten deaktivieren - (Einstellungen → Entwickleroptionen),

  • Fensteranimationsskala

  • Übergangsanimationsskala

  • Animator-Dauer-Skala

Wenn das Menü " Entwickleroptionen" im Bildschirm " Einstellungen" nicht verfügbar ist , klicken Sie mehrmals in der Option " Über Telefon" auf " Build-Nummer verfügbar" . Dies aktiviert das Developer Option- Menü.