Espresso

Utilisez Espresso pour écrire des tests d'interface utilisateur Android concis, attrayants 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 de base est petite, prévisible et facile à apprendre, tout en restant ouverte pour la personnalisation. Les tests Espresso indiquent les attentes, les interactions et les assertions sans la distraction du contenu récurrent, de l'infrastructure personnalisée ou des détails d'implémentation désordonnés qui gênent la propagation.

Les tests Espresso s'exécutent rapidement. Il vous permet d'oublier les temps d'attente, de synchronisation, de veille, et effectue un sondage pendant qu'il manipule l'application de l'UI lorsqu'elle est au repos.

Audience cible

Espresso s'adresse aux développeurs, qui pensent que les tests automatisés sont font partie intégrante du cycle de vie du développement. Bien qu'il puisse être utilisé pour les tests test, mais toute la puissance d'Espresso est exploitée par les personnes du codebase testé.

Fonctionnalités de synchronisation

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

  • La file d'attente de messages ne contient aucun message dont Espresso a besoin pour immédiatement processus.
  • Aucune instance de AsyncTask n'est en cours d'exécution pour une tâche.
  • Toutes les valeurs définies par le développeur ressources inactives inactives.

En effectuant ces vérifications, Espresso augmente considérablement la probabilité que une seule action ou assertion d'UI peut se produire à la fois. Cette fonctionnalité vous permet d'obtenir des résultats plus fiables et plus fiables.

Packages

  • espresso-core : contient les outils de mise en correspondance View principaux et de base, les actions et assertions. Voir Bases et Recettes.
  • espresso-web : contient les ressources pour la prise en charge WebView.
  • espresso-idling-resource – Mécanisme d'Espresso pour la synchronisation avec les tâches d'arrière-plan.
  • espresso-contrib : contributions externes contenant DatePicker, les actions RecyclerView et Drawer, les vérifications de l'accessibilité et CountingIdlingResource
  • espresso-intents – Extension permettant de valider et de bouchonner les intents à des fins de 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 lors des tests sur Android, consultez le les ressources suivantes.

Exemples