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 pode ser personalizada. O Espresso testa expectativas de estado, interações e declarações com clareza, sem que a distração do conteúdo boilerplate, da infraestrutura personalizada ou de detalhes confusos de implementação atrapalhe.
Os testes do Espresso são executados de maneira idealmente rápida! Ele permite que você deixe esperas, sincronizações, suspensões e pesquisas para trás enquanto manipula e faz declarações na IU do aplicativo quando ele está em repouso.
Público-alvo
O Espresso é voltado a desenvolvedores que acreditam que os testes automatizados são uma parte integrante do ciclo de vida de desenvolvimento. Embora ele possa ser usado para testes de caixa preta, todo o poder do Espresso é desbloqueado por aqueles que estão familiarizados com a base de código em teste.
Recursos de sincronização
Sempre que o teste invoca
onView()
,
o Espresso aguarda o cumprimento das seguintes condições de sincronização para realizar a ação ou declaração de IU
correspondente:
- A fila não tem mensagens que o Espresso precisa processar imediatamente.
- Não há instâncias de
AsyncTask
executando uma tarefa no momento. - Todos os recursos de inatividade definidos pelo desenvolvedor estão inativos.
Com essas verificações, o Espresso aumenta significativamente a probabilidade de apenas uma ação ou declaração de interface ocorrer a qualquer momento. Esse recurso oferece resultados de teste mais confiáveis.
Pacotes
espresso-core
: contém matchers, ações e declarações principais e básicos daView
. Consulte Conceitos básicos e Receitas.espresso-web
: contém recursos para oferecer compatibilidade comWebView
.espresso-idling-resource
: mecanismo do Espresso para sincronização com tarefas em segundo plano.espresso-contrib
: contribuições externas que contêm açõesDatePicker
,RecyclerView
eDrawer
, verificações de acessibilidade eCountingIdlingResource
.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.
Para saber mais sobre as versões mais recentes, leia as notas da versão.
Outros recursos
Para saber mais sobre o uso do Espresso em testes do Android, consulte os recursos abaixo.
Exemplos
- Os exemplos de código do Espresso (em inglês) incluem uma seleção completa de exemplos do Espresso.
- BasicSample: exemplo básico do Espresso.
- Outros recursos para testes