Cadre de test Espresso - Instructions de configuration

Dans ce chapitre, voyons comment installer le framework espresso, le configurer pour écrire des tests espresso et l'exécuter dans notre application Android.

Conditions préalables

Espresso est un cadre de test d'interface utilisateur pour tester une application Android développée en langage Java / Kotlin à l'aide du SDK Android. Par conséquent, la seule exigence d'espresso est de développer l'application à l'aide du SDK Android en Java ou Kotlin et il est conseillé d'avoir le dernier Android Studio.

La liste des éléments à configurer correctement avant de commencer à travailler dans le framework espresso est la suivante -

  • Installez le dernier JDK Java et configurez la variable d'environnement JAVA_HOME.

  • Installez la dernière version d'Android Studio (version 3.2 ou supérieure).

  • Installez le dernier SDK Android à l'aide du Gestionnaire de SDK et configurez la variable d'environnement ANDROID_HOME.

  • Installez le dernier outil de construction Gradle et configurez la variable d'environnement GRADLE_HOME.

Configurer le framework EspressoTesting

Initialement, le cadre de test d'espresso est fourni dans le cadre de la bibliothèque de support Android. Plus tard, l'équipe Android fournit une nouvelle bibliothèque Android, AndroidX et déplace le dernier développement du cadre de test d'espresso dans la bibliothèque. Le dernier développement (Android 9.0, niveau d'API 28 ou supérieur) du cadre de test d'espresso sera effectué dans la bibliothèque AndroidX.

Inclure le cadre de test espresso dans un projet est aussi simple que de définir le cadre de test espresso en tant que dépendance dans le fichier gradle de l'application, app / build.gradle. La configuration complète est la suivante,

En utilisant la bibliothèque de support 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'
}

En utilisant la bibliothèque 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 dans la classe android / defaultConfig définit AndroidJUnitRunner pour exécuter les tests d'instrumentation. La première ligne des dépendances inclut le framework de test JUnit , la deuxième ligne des dépendances inclut la bibliothèque de test runner pour exécuter les cas de test et enfin la troisième ligne des dépendances inclut le framework de test espresso.

Par défaut, le studio Android définit le cadre de test espresso (bibliothèque de support Android) comme une dépendance lors de la création du projet Android et gradle téléchargera la bibliothèque nécessaire à partir du référentiel Maven. Créons une simple application Android Hello world et vérifions si le cadre de test d'espresso est configuré correctement.

Les étapes pour créer une nouvelle application Android sont décrites ci-dessous -

  • Démarrez Android Studio.

  • Sélectionnez Fichier → Nouveau → Nouveau projet.

  • Entrez le nom de l' application (HelloWorldApp) et le domaine de l'entreprise (espressosamples.tutorialspoint.com), puis cliquez sur Suivant .

Pour créer un projet Android,

  • Sélectionnez l'API minimale comme API 15: Android 4.0.3 (IceCreamSandwich), puis cliquez sur Suivant.

Pour cibler les appareils Android,

  • Sélectionnez Activité vide , puis cliquez sur Suivant .

Pour ajouter une activité à Mobile,

  • Entrez le nom de l'activité principale, puis cliquez sur Terminer .

Pour configurer l'activité,

  • Une fois qu'un nouveau projet est créé, ouvrez le fichier app / build.gradle et vérifiez son contenu. Le contenu du fichier est précisé ci-dessous,

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

La dernière ligne spécifie la dépendance du framework de test espresso. Par défaut, la bibliothèque de support Android est configurée. Nous pouvons reconfigurer l'application pour utiliser la bibliothèque AndroidX en cliquant sur RefactorMigrer vers AndroidX dans le menu.

Pour migrer vers Androidx,

  • Maintenant, l' application / build.gradle change comme spécifié ci-dessous,

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

Maintenant, la dernière ligne comprend le cadre de test d'espresso de la bibliothèque AndroidX.

Réglages de l'appareil

Pendant les tests, il est recommandé de désactiver l'animation sur l'appareil Android, qui est utilisée pour les tests. Cela réduira les confusions lors de la vérification des ressources ideling.

Voyons comment désactiver l'animation sur les appareils Android - (Paramètres → Options du développeur),

  • Échelle d'animation de la fenêtre

  • Échelle d'animation de transition

  • Échelle de durée de l'animateur

Si le menu Options du développeur n'est pas disponible dans l' écran Paramètres , cliquez plusieurs fois sur Numéro de version disponible dans l' option À propos du téléphone . Cela active le menu Options du développeur .