Espresso para Testes Automatizados em Android
O Espresso é parte do Android Testing Support Library e oferece uma API fluente para interações com a UI. Para começar, é necessário adicionar as dependências no arquivo build.gradle: testingImplementation 'com.google.android.apps.common.testing:espresso-core:3.4.0' Um dos problemas mais comuns é a regra @Rule ser pública quando usamos Kotlin: @get:Rule var activityRule = ActivityTestRule(MainActivity::class.java) Isso é necessário para que o Espresso possa acessar e inicializar corretamente a regra durante o teste. Outro ponto importante são os ambientes de execução (Executors), que permitem controlar o tempo das operações síncronas do Espresso.
Fundamentos
O Espresso é parte do Android Testing Support Library e oferece uma API fluente para interações com a UI. Para começar, é necessário adicionar as dependências no arquivo build.gradle:
testingImplementation 'com.google.android.apps.common.testing:espresso-core:3.4.0'
Um dos problemas mais comuns é a regra @Rule ser pública quando usamos Kotlin:
@get:Rule var activityRule = ActivityTestRule<MainActivity>(MainActivity::class.java)
Isso é necessário para que o Espresso possa acessar e inicializar corretamente a regra durante o teste. Outro ponto importante são os ambientes de execução (Executors), que permitem controlar o tempo das operações síncronas do Espresso.
Introdução
O Espresso é uma biblioteca de testes automatizados para aplicações Android que facilita a escrita de testes de UI robustos e concisos. Com mais de 3.336 perguntas no Stack Overflow, fica evidente a popularidade e a necessidade de um guia detalhado sobre o assunto. O Espresso permite que desenvolvedores verifiquem o comportamento da interface do usuário, interajam com os elementos da tela e esperem por condições específicas. Neste artigo, exploraremos desde os conceitos básicos até as práticas avançadas, abordando as principais dúvidas da comunidade.
Implementação
Para clicar em um item dentro de um RecyclerView com Espresso, primeiro você precisa garantir que o item está visível na lista:
onViewMatchers(isRoot()).perform(scrollToPosition<RecyclerView.ViewHolder>(position)) onDataInteraction().targetRecyclerViewItemAtPosition(R.id.recycler_view, position).perform(click())
Evite usar Thread.sleep() em testes Espresso, pois isso pode levar a resultados inconsistentes. Em vez disso, use Awaitility ou matchers de espera do Espresso:
onViewMatchers(withText(
📂 Termos relacionados
Este termo foi útil para você?