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 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