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 assertionsView
principaux et de base. Consultez les sections Principes de base et Recettes.espresso-web
: contient les ressources pour la prise en charge deWebView
.espresso-idling-resource
: mécanisme d'Espresso pour la synchronisation avec les tâches en arrière-plan.espresso-contrib
: contributions externes contenant les actionsDatePicker
,RecyclerView
etDrawer
, les vérifications d'accessibilité etCountingIdlingResource
.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
- Les exemples de code Espresso incluent une sélection complète d'exemples Espresso.
- BasicSample : exemple de base d'Espresso.
- (plus...)