Espresso Testing Framework - instruções de configuração

Neste capítulo, vamos entender como instalar o framework espresso, configurá-lo para escrever testes espresso e executá-lo em nosso aplicativo Android.

Pré-requisitos

Espresso é uma estrutura de teste de interface do usuário para testar aplicativos Android desenvolvidos na linguagem Java / Kotlin usando Android SDK. Portanto, o único requisito do espresso é desenvolver o aplicativo usando Android SDK em Java ou Kotlin e é aconselhável ter o Android Studio mais recente.

A lista de itens a serem configurados corretamente antes de começarmos a trabalhar na estrutura do espresso é a seguinte -

  • Instale o Java JDK mais recente e configure a variável de ambiente JAVA_HOME.

  • Instale o Android Studio mais recente (versão 3.2. Ou superior).

  • Instale o Android SDK mais recente usando o SDK Manager e configure a variável de ambiente ANDROID_HOME.

  • Instale a ferramenta Gradle Build mais recente e configure a variável de ambiente GRADLE_HOME.

Configurar EspressoTesting Framework

Inicialmente, a estrutura de teste do espresso é fornecida como parte da biblioteca de suporte do Android. Posteriormente, a equipe do Android fornece uma nova biblioteca Android, AndroidX, e move o desenvolvimento da estrutura de teste mais recente do espresso para a biblioteca. O desenvolvimento mais recente (Android 9.0, API de nível 28 ou superior) da estrutura de teste do espresso será feito na biblioteca AndroidX.

Incluir a estrutura de teste do espresso em um projeto é tão simples quanto configurar a estrutura de teste do espresso como uma dependência no arquivo gradle do aplicativo, app / build.gradle. A configuração completa é a seguinte,

Usando a biblioteca de suporte do Android,

android {
   defaultConfig {
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

Usando a biblioteca AndroidX,

android {
   defaultConfig {
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
}
dependencies {
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.androidx.test:runner:1.0.2'
   androidTestImplementation 'com.androidx.espresso:espresso-core:3.0.2'
}

testInstrumentationRunner em android / defaultConfig define a classe AndroidJUnitRunner para executar os testes de instrumentação. A primeira linha nas dependências inclui a estrutura de teste JUnit , a segunda linha nas dependências inclui a biblioteca do executor de teste para executar os casos de teste e, finalmente, a terceira linha nas dependências inclui a estrutura de teste espresso.

Por padrão, o Android Studio define a estrutura de teste do espresso (biblioteca de suporte do Android) como uma dependência ao criar o projeto android e o gradle fará o download da biblioteca necessária do repositório Maven. Vamos criar um aplicativo simples para Android Hello world e verificar se a estrutura de teste do espresso está configurada corretamente.

As etapas para criar um novo aplicativo Android são descritas abaixo -

  • Inicie o Android Studio.

  • Selecione Arquivo → Novo → Novo projeto.

  • Digite o nome do aplicativo (HelloWorldApp) e o domínio da empresa (espressosamples.tutorialspoint.com) e clique em Avançar .

Para criar um projeto Android,

  • Selecione API mínima como API 15: Android 4.0.3 (IceCreamSandwich) e clique em Avançar.

Para segmentar dispositivos Android,

  • Selecione Atividade vazia e clique em Avançar .

Para adicionar uma atividade ao celular,

  • Insira o nome da atividade principal e clique em Concluir .

Para configurar a atividade,

  • Depois de criar um novo projeto, abra o arquivo app / build.gradle e verifique seu conteúdo. O conteúdo do arquivo é especificado abaixo,

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'),    'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:28.0.0'
   implementation 'com.android.support.constraint:constraint-layout:1.1.3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espressocore:3.0.2'
}

A última linha especifica a dependência da estrutura de teste do espresso. Por padrão, a biblioteca de suporte do Android está configurada. Podemos reconfigurar o aplicativo para usar a biblioteca AndroidX clicando em RefactorMigrate to AndroidX no menu.

Para migrar para o Androidx,

  • Agora, o app / build.gradle muda conforme especificado abaixo,

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.tutorialspoint.espressosamples.helloworldapp"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
   implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'androidx.test:runner:1.1.1'
   androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

Agora, a última linha inclui a estrutura de teste espresso da biblioteca AndroidX.

Configurações do dispositivo

Durante o teste, é recomendado desligar a animação no dispositivo Android, que é usado para o teste. Isso reduzirá as confusões ao verificar os recursos de ócio.

Vamos ver como desativar a animação em dispositivos Android - (Configurações → Opções do desenvolvedor),

  • Escala de animação da janela

  • Escala de animação de transição

  • Escala de duração do animador

Se o menu de opções do desenvolvedor não estiver disponível na tela Configurações , clique várias vezes em Número da versão disponível na opção Sobre o telefone . Isso ativa o menu Opções do desenvolvedor .