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. Mesmo assim, ela também pode ser personalizada. O Espresso testa com clareza expectativas, interações e declarações de estado, sem que a distração causa por conteúdo clichê, infraestrutura personalizada ou detalhes confusos de implementação atrapalhe.

Os testes do Espresso são executados de maneira idealmente rápida! Ele permite ignorar suas esperas, sincronizações, suspensões e pesquisas enquanto faz manipulações e declarações na IU do aplicativo quando ela está em repouso.

Público-alvo

O Espresso é destinado aos desenvolvedores que acreditam que testes automatizados sejam uma parte fundamental do ciclo de vida do desenvolvimento. Embora o Espresso possa ser usado para testes caixa preta, a capacidade total dele é atingida por aqueles que conhecem o codebase em teste.

Recursos de sincronização

Sempre que seu teste invoca onView(), o Espresso aguarda o cumprimento das seguintes condições de sincronização para realizar a ação ou a declaração de IU correspondente:

  • A fila de mensagens está vazia.
  • Não há instâncias de AsyncTask executando uma tarefa no momento.
  • Todos os recursos de inatividade definidos pelo desenvolvedor estão inativos.

Realizando essas verificações, o Espresso aumenta significativamente a probabilidade de que apenas uma ação ou declaração de IU ocorra a qualquer momento. Esse recurso oferece resultados de testes mais confiáveis e seguros.

Pacotes

  • espresso-core: contém matchers, ações e declarações básicos da View. Consulte Conceitos básicos e Receitas.
  • espresso-web: contém recursos para 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 mais informações sobre o uso do Espresso em testes do Android, consulte os seguintes recursos.

Exemplos