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 instabilidades, é altamente recomendável que você desative 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:
- Abra o arquivo
build.gradle
do seu app. Normalmente, esse não é o arquivobuild.gradle
de nível superior, masapp/build.gradle
. - 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 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 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
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 = 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:
- Abra Run > Edit Configurations.
- Adicione uma nova configuração de teste do Android.
- Escolha um módulo.
- Adicione um executor de instrumentação específico:
androidx.test.runner.AndroidJUnitRunner
- Execute a configuração recém-criada.
Na linha de comando
Execute o seguinte comando do Gradle:
./gradlew connectedAndroidTest