Instruções de configuração do Espresso

Este guia ensina a instalar o Espresso usando o SDK Manager e a criá-lo usando o Gradle. O uso do Android Studio é recomendado.

Configurar seu ambiente de teste

Para evitar instabilidades, é altamente recomendável que você desative as animações do sistema nos dispositivos virtuais ou físicos usados para testes. No dispositivo, em Config. > 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 app. Geralmente, esse não é o arquivo build.gradle de nível superior, mas app/build.gradle.
  2. Adicione as seguintes linhas nas dependências:
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    androidTestImplementation 'androidx.test:runner:1.1.0'
    androidTestImplementation 'androidx.test:rules:1.1.0'
    

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:

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

Exemplo de arquivo de compilação do Gradle

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 28

        defaultConfig {
            applicationId "com.my.awesome.app"
            minSdkVersion 15
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"

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

    dependencies {
        androidTestImplementation 'androidx.test:runner:1.1.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    }
    

Análise

Para saber se estamos no caminho certo a cada nova versão, o executor de testes coleta dados de análise. 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 quer fazer upload desses dados, desative esse recurso incluindo o argumento disableAnalytics no comando de instrumentação:

    adb shell am instrument -e disableAnalytics true
    

Veja como transmitir argumentos personalizados (em inglês).

Adicionar o primeiro teste

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

Exemplo de teste JUnit4 usando regras:

Kotlin

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

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

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

Java

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

        @Rule
        public ActivityTestRule<MainActivity> activityRule =
                new ActivityTestRule<>(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