Marco de prueba de Espresso: instrucciones de configuración

En este capítulo, entendamos cómo instalar espresso framework, configurarlo para escribir pruebas de espresso y ejecutarlo en nuestra aplicación de Android.

Prerrequisitos

Espresso es un marco de prueba de interfaz de usuario para probar aplicaciones de Android desarrolladas en lenguaje Java / Kotlin usando SDK de Android. Por lo tanto, el único requisito de espresso es desarrollar la aplicación usando el SDK de Android en Java o Kotlin y se recomienda tener la última versión de Android Studio.

La lista de elementos que deben configurarse correctamente antes de comenzar a trabajar en el marco de espresso es la siguiente:

  • Instale el último Java JDK y configure la variable de entorno JAVA_HOME.

  • Instale la última versión de Android Studio (versión 3.2. O superior).

  • Instale el último SDK de Android con SDK Manager y configure la variable de entorno ANDROID_HOME.

  • Instale la última herramienta de compilación de Gradle y configure la variable de entorno GRADLE_HOME.

Configurar el marco de prueba de Espresso

Inicialmente, el marco de prueba de espresso se proporciona como parte de la biblioteca de soporte de Android. Más tarde, el equipo de Android proporciona una nueva biblioteca de Android, AndroidX, y traslada el último desarrollo del marco de pruebas de espresso a la biblioteca. El último desarrollo (Android 9.0, API nivel 28 o superior) del marco de prueba de espresso se realizará en la biblioteca de AndroidX.

Incluir el marco de prueba de espresso en un proyecto es tan simple como configurar el marco de prueba de espresso como una dependencia en el archivo gradle de la aplicación, app / build.gradle. La configuración completa es la siguiente,

Usando la biblioteca de soporte de 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 la biblioteca de 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 en android / defaultConfig establece la clase AndroidJUnitRunner para ejecutar las pruebas de instrumentación. La primera línea en las dependencias incluye el marco de prueba JUnit , la segunda línea en las dependencias incluye la biblioteca del corredor de prueba para ejecutar los casos de prueba y finalmente la tercera línea en las dependencias incluye el marco de prueba espresso.

De forma predeterminada, Android Studio establece el marco de prueba de espresso (biblioteca de soporte de Android) como una dependencia mientras crea el proyecto de Android y gradle descargará la biblioteca necesaria del repositorio de Maven. Creemos una aplicación simple para Android Hello World y verifiquemos si el marco de prueba de espresso está configurado correctamente.

Los pasos para crear una nueva aplicación de Android se describen a continuación:

  • Inicie Android Studio.

  • Seleccione Archivo → Nuevo → Nuevo proyecto.

  • Ingrese el nombre de la aplicación (HelloWorldApp) y el dominio de la compañía (espressosamples.tutorialspoint.com) y luego haga clic en Siguiente .

Para crear un proyecto de Android,

  • Seleccione API mínima como API 15: Android 4.0.3 (IceCreamSandwich) y luego haga clic en Siguiente.

Para apuntar a dispositivos Android,

  • Seleccione Actividad vacía y luego haga clic en Siguiente .

Para agregar una actividad a Mobile,

  • Ingrese el nombre de la actividad principal y luego haga clic en Finalizar .

Para configurar la actividad,

  • Una vez que se crea un nuevo proyecto, abra el archivo app / build.gradle y verifique su contenido. El contenido del archivo se especifica a continuación,

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'
}

La última línea especifica la dependencia del marco de prueba de espresso. De forma predeterminada, la biblioteca de soporte de Android está configurada. Podemos reconfigurar la aplicación para usar la biblioteca de AndroidX haciendo clic en RefactorMigrar a AndroidX en el menú.

Para migrar a Androidx,

  • Ahora, la aplicación / build.gradle cambia como se especifica a continuación,

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'
}

Ahora, la última línea incluye el marco de prueba espresso de la biblioteca de AndroidX.

Configuración de dispositivo

Durante la prueba, se recomienda apagar la animación en el dispositivo Android, que se utiliza para la prueba. Esto reducirá las confusiones al verificar los recursos de diseño.

Veamos cómo deshabilitar la animación en dispositivos Android - (Configuración → Opciones de desarrollador),

  • Escala de animación de ventana

  • Escala de animación de transición

  • Escala de duración del animador

Si el menú de opciones de desarrollador no está disponible en la pantalla Configuración , haga clic en Número de compilación disponible dentro de la opción Acerca del teléfono varias veces. Esto habilita el menú Opciones de desarrollador .