Espresso

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 da View. Consulte Conceitos básicos 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 ações DatePicker, 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.

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