Espresso

Utilisez Espresso pour écrire des tests d'interface utilisateur Android concis, esthétiques et fiables.

L'extrait de code suivant présente un exemple de test Espresso:

Kotlin

@Test
fun greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"))
    onView(withId(R.id.greet_button)).perform(click())
    onView(withText("Hello Steve!")).check(matches(isDisplayed()))
}

Java

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

L'API principale est petite, prévisible et facile à apprendre, tout en restant ouverte à la personnalisation. Les tests Espresso indiquent clairement les attentes, les interactions et les assertions sans être gêné par le contenu récurrent, l'infrastructure personnalisée ou les détails d'implémentation désordonnés.

Les tests Espresso sont exécutés rapidement et de façon optimale. Il vous permet d'abandonner les temps d'attente, les synchronisations, les mises en veille et les interrogations pendant qu'il manipule et effectue des assertions sur l'interface utilisateur de l'application lorsqu'elle est au repos.

Audience cible

Espresso s'adresse aux développeurs, qui pensent que les tests automatisés font partie intégrante du cycle de développement. Bien qu'il puisse être utilisé pour des tests par boîte noire, toute la puissance d'Espresso est déverrouillée par les personnes qui connaissent le codebase testé.

Fonctionnalités de synchronisation

Chaque fois que votre test appelle onView(), Espresso attend d'effectuer l'action ou l'assertion d'interface utilisateur correspondante jusqu'à ce que les conditions de synchronisation suivantes soient remplies:

  • La file d'attente de messages ne contient aucun message qu'Espresso doit traiter immédiatement.
  • Aucune instance de AsyncTask n'exécute actuellement une tâche.
  • Toutes les ressources inactives définies par le développeur sont inactives.

En effectuant ces vérifications, Espresso augmente considérablement la probabilité qu'une seule action ou assertion de l'interface utilisateur se produise à un moment donné. Cette fonctionnalité permet d'obtenir des résultats de test plus fiables.

Colis

  • espresso-core : contient les outils de mise en correspondance, les actions et les assertions View principaux et de base. Consultez les sections Principes de base et Recettes.
  • espresso-web : contient les ressources pour la prise en charge de WebView.
  • espresso-idling-resource : mécanisme d'Espresso pour la synchronisation avec les tâches en arrière-plan.
  • espresso-contrib : contributions externes contenant les actions DatePicker, RecyclerView et Drawer, les vérifications d'accessibilité et CountingIdlingResource.
  • espresso-intents : extension permettant de valider et de bouchonner les intents pour les tests hermétiques.
  • espresso-remote : emplacement de la fonctionnalité multiprocessus d'Espresso.

Pour en savoir plus sur les dernières versions, consultez les notes de version.

Ressources supplémentaires

Pour en savoir plus sur l'utilisation d'Espresso dans les tests Android, consultez les ressources suivantes.

Exemples