Instruções de configuração do Espresso

Este guia aborda a instalação do Espresso usando o SDK Manager e a criação dele usando o Gradle. O uso do Android Studio é recomendado.

Configurar seu ambiente de teste

Para evitar instabilidade, é altamente recomendável desativar as animações do sistema nos dispositivos virtuais ou físicos usados para testes. No dispositivo, em Configurações > Opções do desenvolvedor, desative estas três configurações:

  • Escala de animação da janela
  • Escala de animação de transição
  • Escala de duração do Animator

Adicionar dependências do Espresso

Para adicionar dependências do Espresso ao projeto, siga estas etapas:

  1. Abra o arquivo build.gradle do seu app. Normalmente, esse não é o arquivo build.gradle de nível superior, mas app/build.gradle.
  2. Adicione as seguintes linhas nas dependências:

Groovy

androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
androidTestImplementation 'androidx.test:runner:1.6.1'
androidTestImplementation 'androidx.test:rules:1.6.1'

Kotlin

androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1')
androidTestImplementation('androidx.test:runner:1.6.1')
androidTestImplementation('androidx.test:rules:1.6.1')

Veja o conjunto completo de dependências do Gradle.

Definir o executor de instrumentação

Adicione ao mesmo arquivo build.gradle a seguinte linha em android.defaultConfig:

Groovy

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Kotlin

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Exemplo de arquivo de compilação do Gradle

Groovy

plugins {
  id 'com.android.application'
}

android {
    compileSdkVersion 33

    defaultConfig {
        applicationId "com.my.awesome.app"
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    androidTestImplementation 'androidx.test:runner:1.6.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
}

Kotlin

plugins {
    id("com.android.application")
}

android {
    compileSdkVersion(33)

    defaultConfig {
        applicationId = "com.my.awesome.app"
        minSdkVersion(21)
        targetSdkVersion(33)
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    androidTestImplementation('androidx.test:runner:1.6.1')
    androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1')
}

Análise

Para garantir que estamos no caminho certo a cada nova versão, o executor de testes coleta análises. Mais especificamente, ele faz upload de um hash do nome do pacote do aplicativo em teste para cada invocação. Isso nos permite medir a contagem de pacotes exclusivos usando o Espresso, bem como o volume de uso.

Se você não quiser fazer upload desses dados, desative esse recurso incluindo o argumento disableAnalytics no comando de instrumentação:

adb shell am instrument -e disableAnalytics true

Adicionar o primeiro teste

O Android Studio cria testes por padrão em src/androidTest/java/com.example.package/.

Exemplo de teste JUnit4 usando regras:

Kotlin

@RunWith(AndroidJUnit4::class)
@LargeTest
class HelloWorldEspressoTest {

    @get:Rule
    val activityRule = ActivityScenarioRule(MainActivity::class.java)

    @Test fun listGoesOverTheFold() {
        onView(withText("Hello world!")).check(matches(isDisplayed()))
    }
}

Java

@RunWith(AndroidJUnit4.class)
@LargeTest
public class HelloWorldEspressoTest {

    @Rule
    public ActivityScenarioRule<MainActivity> activityRule =
            new ActivityScenarioRule<>(MainActivity.class);

    @Test
    public void listGoesOverTheFold() {
        onView(withText("Hello world!")).check(matches(isDisplayed()));
    }
}

Executar testes

Você pode executar testes no Android Studio ou na linha de comando.

No Android Studio

Para criar uma configuração de teste no Android Studio, siga estas etapas:

  1. Abra Run > Edit Configurations.
  2. Adicione uma nova configuração de teste do Android.
  3. Escolha um módulo.
  4. Adicione um executor de instrumentação específico: androidx.test.runner.AndroidJUnitRunner
  5. Execute a configuração recém-criada.

Na linha de comando

Execute o seguinte comando do Gradle:

./gradlew connectedAndroidTest