Espresso
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Use o Espresso para programar testes concisos, bonitos e confiáveis para a IU do Android.
O snippet de código a seguir mostra um exemplo de teste do 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()));
}

A API principal é pequena, previsível e fácil de aprender, mas ainda assim permanece aberta para
e personalização. O Espresso testa expectativas, interações e declarações de estado
com clareza, sem a distração de conteúdo clichê, infraestrutura personalizada
ou detalhes confusos de implementação atrapalham.
Os testes do Espresso são executados de maneira idealmente rápida! Ele permite que você deixe suas esperas, sincronizações, suspensões,
e pesquisa enquanto manipula e declara no aplicativo
na interface do usuário
quando ele está em repouso.
Público-alvo
O Espresso é voltado para desenvolvedores que acreditam que os testes automatizados são uma
parte essencial do ciclo de vida de desenvolvimento. Embora ele possa ser usado para caixas pretas,
testes, a capacidade total do Espresso é desbloqueada por aqueles que estão familiarizados com o
base de código em teste.
Recursos de sincronização
Cada vez que o teste invoca
onView()
,
O Espresso espera para executar a ação ou declaração de interface correspondente até que o
seguintes condições de sincronização sejam atendidas:
- A fila de mensagens não tem mensagens que o Espresso precise executar imediatamente
de desenvolvimento de software.
- Não há instâncias de
AsyncTask
em execução no momento
uma tarefa.
- Todas as configurações definidas pelo desenvolvedor
recursos de inatividade estão inativos.
Com a execução dessas verificações, o Espresso aumenta substancialmente a probabilidade de
apenas uma ação ou declaração de interface pode ocorrer a qualquer momento. Essa capacidade
fornece resultados de teste mais confiáveis.
Pacotes
espresso-core
: contém matchers, ações e elementos básicos do View
declarações. Consulte
Noções básicas
e Receitas.
espresso-web
: contém recursos para oferecer compatibilidade com WebView
.
espresso-idling-resource
–
Mecanismo do Espresso para sincronização com tarefas em segundo plano.
espresso-contrib
: contribuições externas que contêm DatePicker
,
Ações RecyclerView
e Drawer
, verificações de acessibilidade e
CountingIdlingResource
.
espresso-intents
–
Extensão para validar e criar stubs de intents para testes herméticos.
espresso-remote
: localização da funcionalidade de vários processos do Espresso.
Saiba mais sobre as versões mais recentes lendo a
notas da versão.
Outros recursos
Para mais informações sobre o uso do Espresso em testes do Android, consulte o
recursos a seguir.
Amostras
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Espresso\n\nUse Espresso to write concise, beautiful, and reliable Android UI tests.\n\nThe following code snippet shows an example of an Espresso test:\n\n\u003cbr /\u003e\n\n### Kotlin\n\n```kotlin\n@Test\nfun greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"))\n onView(withId(R.id.greet_button)).perform(click())\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()))\n}\n```\n\n### Java\n\n```java\n@Test\npublic void greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"));\n onView(withId(R.id.greet_button)).perform(click());\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()));\n}\n```\n\n\u003cbr /\u003e\n\nThe core API is small, predictable, and easy to learn and yet remains open for\ncustomization. Espresso tests state expectations, interactions, and assertions\nclearly without the distraction of boilerplate content, custom infrastructure,\nor messy implementation details getting in the way.\n\nEspresso tests run optimally fast! It lets you leave your waits, syncs, sleeps,\nand polls behind while it manipulates and asserts on the application\nUI when it is at rest.\n\nTarget audience\n---------------\n\nEspresso is targeted at developers, who believe that automated testing is an\nintegral part of the development lifecycle. While it can be used for black-box\ntesting, Espresso's full power is unlocked by those who are familiar with the\ncodebase under test.\n\nSynchronization capabilities\n----------------------------\n\nEach time your test invokes\n[`onView()`](/reference/androidx/test/espresso/Espresso#onView(org.hamcrest.Matcher%3Candroid.view.View%3E)),\nEspresso waits to perform the corresponding UI action or assertion until the\nfollowing synchronization conditions are met:\n\n- The message queue doesn't have any messages that Espresso needs to immediately process.\n- There are no instances of [AsyncTask](/reference/android/os/AsyncTask) currently executing a task.\n- All developer-defined [idling resources](/training/testing/espresso/idling-resource) are idle.\n\nBy performing these checks, Espresso substantially increases the likelihood that\nonly one UI action or assertion can occur at any given time. This capability\ngives you more reliable and dependable test results.\n\nPackages\n--------\n\n- `espresso-core` - Contains core and basic `View` matchers, actions, and assertions. See [Basics](/training/testing/espresso/basics) and [Recipes](/training/testing/espresso/recipes).\n- [`espresso-web`](/training/testing/espresso/web) - Contains resources for `WebView` support.\n- [`espresso-idling-resource`](/training/testing/espresso/idling-resource) - Espresso's mechanism for synchronization with background jobs.\n- `espresso-contrib` - External contributions that contain `DatePicker`, `RecyclerView` and `Drawer` actions, accessibility checks, and `CountingIdlingResource`.\n- [`espresso-intents`](/training/testing/espresso/intents) - Extension to validate and stub intents for hermetic testing.\n- `espresso-remote` - Location of Espresso's [multi-process](/training/testing/espresso/multiprocess) functionality.\n\nYou can learn more about the latest versions by reading the\n[release notes](/topic/libraries/testing-support-library/release-notes).\n\nAdditional resources\n--------------------\n\nFor more information about using Espresso in Android tests, consult the\nfollowing resources.\n\n### Samples\n\n- [Espresso Code Samples](https://github.com/googlesamples/android-testing) includes a full selection of Espresso samples.\n- [BasicSample](https://github.com/android/testing-samples/tree/main/ui/espresso/BasicSample): Basic Espresso sample.\n- [(more...)](/training/testing/espresso/additional-resources#samples)"]]