-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Espresso est une API permettant de tester l’interface d’une application. Il est possible de simuler des actions utilisateur sur l’interface d’une application et ensuite de tester si le résultat d’une action est bien celui attendu en vérifiant l’état et la valeur d’affichage des différents éléments de l’interface graphique.
Espresso est l’API de base pour tester les interfaces utilisateurs, les dépendances vers l’API Espresso sont déjà présente dans Gradle au moment de la création de nouveau projet sous Android Studio. Cette API est appréciée pour sa fiabilité et sa facilité d’utilisation.
Les objectifs de ce chapitre sont les suivants :
- Savoir mettre en place Espresso.
- Découvrir le fonctionnement de ce type de test.
Pour mettre en place Espresso dans un projet il est nécessaire de suivre les étapes suivantes :
- Définir les dépendances nécessaires
- Définir les tests
Voici les dépendances nécessaires pour l'utilisation d'Espresso :
dependencies
{
...
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test: runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
...
}
Pour définir un test sur une Activité avec Espresso il est tout d’abord nécessaire de créer une classe de test dans l’arborescence du dossier AndroidTest :
MainActivityTest.kt
@LargeTest
class MainActivityTest
{
//...
}
Il est nécessaire de définir une JUnit Rule dans la classe de test pour définir l'activité à tester.
_MainActivityTest.kt_
@LargeTest
class MainActivityTest
{
@Rule @JvmField val activity = ActivityTestRule<MainActivity>(MainActivity::class.java)
}
Un cas de test est un scénario décrivant l'action d'un utilisateur avec l'application. Une classe de test doit contenir plusieurs cas de test afin de couvrir le maximum de scénarios possibles. MainActivityTest.kt
@LargeTest
class MainActivityTest
{
@Rule @JvmField val activity = ActivityTestRule<MainActivity>(MainActivity::class.java)
@Test
fun testRandom()
{
//Clic sur l'élément avec l'id égal à 'R.id.btn_bonjour'
onView(withId(R.id.btn_bonjour)).perform(click())
//Regarde si l'élément avec l'id égal à 'R.id.tv_affichage' est égal à 'Bonjour'
onView(withId(R.id.tv_affichage)).check(matches(withText("Bonjour")))
}
Voici la liste des principales fonction permettant de définir les scénarios de test :