Cómo configurar el proyecto para AndroidX Test

Para usar AndroidX Test, debes incluir varias bibliotecas específicas de prueba. En esta guía, se explica cómo declarar estas bibliotecas en los archivos de proyecto de tu app y se muestra cómo están organizadas las bibliotecas de AndroidX Test.

Cómo agregar bibliotecas de Android Test

Para usar AndroidX Test, debes modificar las dependencias de classpath de la app del proyecto y manifestarlas en su entorno de desarrollo, como se muestra en las siguientes secciones.

Agrega dependencias de Gradle

Para modificar las dependencias de ruta de clase del proyecto de app, realiza los siguientes pasos:

  1. Abre el archivo build.gradle de tu app.
  2. En la sección repositories, asegúrate de que aparezca el repositorio Maven de Google:

        allprojects {
            repositories {
                jcenter()
                google()
            }
        }
  3. Para cada paquete de prueba de AndroidX que quieras usar, agrega su nombre a la sección dependencies. Por ejemplo, para agregar el paquete espresso-core, agrega las siguientes líneas:

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

    Precaución: Usar dependencias dinámicas (por ejemplo, espresso-core:3.1.0+) puede provocar actualizaciones inesperadas de la versión e incompatibilidades de regresión. Te recomendamos que especifiques explícitamente un número de versión en particular (por ejemplo, espresso-core:3.1.0).

  4. Si tu app compila pruebas que dependen de clases basadas en JUnit, como Assert y TestSuiteLoader, agrega las siguientes líneas en la sección android del archivo:
        android {
            ...
    
            // Gradle automatically adds 'android.test.runner' as a dependency.
            useLibrary 'android.test.runner'
    
            useLibrary 'android.test.base'
            useLibrary 'android.test.mock'
        }

    Nota: Solo debes incluir las bibliotecas que contienen las clases utilizadas en tu app. Para obtener una lista de las clases que aparecen en cada biblioteca, consulta Bibliotecas basadas en JUnit.

Cómo agregar declaraciones en el manifiesto

Para ejecutar pruebas que dependan de clases basadas en JUnit, agrega los elementos <uses-library> necesarios al manifiesto de tu app de prueba. Por ejemplo, si agregas pruebas que dependen de la biblioteca android.test.runner, agrega el siguiente elemento al manifiesto de tu app:

<!-- You don't need to include android:required="false" if your app's
         minSdkVersion is 28 or higher. -->
    <uses-library android:name="android.test.runner"
                  android:required="false" />
    

Para determinar la biblioteca que contiene una clase basada en JUnit, consulta Bibliotecas basadas en JUnit.

Consideraciones para la orientación a Android 9 o versiones posteriores

La guía de esta sección se aplica solo si apuntas a Android 9 (API nivel 28) o versiones posteriores y la versión mínima de SDK para tu app está configurada en Android 9 (API nivel 28) o una versión posterior.

La biblioteca android.test.runner depende de forma implícita de las bibliotecas android.test.base y android.test.mock. Si tu app solo usa clases de android.test.base o android.test.mock, puedes incluir las bibliotecas solas:

<!-- For both of these declarations, you don't need to include
         android:required="false" if your app's minSdkVersion is 28
         or higher. -->
    <uses-library android:name="android.test.base"
                  android:required="false" />
    <uses-library android:name="android.test.mock"
                  android:required="false" />
    

Lista de dependencias de AndroidX Test

AndroidX Test incluye varias dependencias, como se muestra en las siguientes secciones.

Dependencias de Gradle

Las siguientes dependencias basadas en Gradle están disponibles en AndroidX Test:

dependencies {
      // Core library
      androidTestImplementation 'androidx.test:core:1.0.0'

      // AndroidJUnitRunner and JUnit Rules
      androidTestImplementation 'androidx.test:runner:1.1.0'
      androidTestImplementation 'androidx.test:rules:1.1.0'

      // Assertions
      androidTestImplementation 'androidx.test.ext:junit:1.0.0'
      androidTestImplementation 'androidx.test.ext:truth:1.0.0'
      androidTestImplementation 'com.google.truth:truth:0.42'

      // Espresso dependencies
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.0'
      androidTestImplementation 'androidx.test.espresso.idling:idling-concurrent:3.1.0'

      // The following Espresso dependency can be either "implementation"
      // or "androidTestImplementation", depending on whether you want the
      // dependency to appear on your APK's compile classpath or the test APK
      // classpath.
      androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.1.0'
    }
    

Como se explica en Cómo agregar dependencias de Gradle desde un repositorio de Maven, puedes agregar esas dependencias a tu entorno de desarrollo si agregas cada dependencia dentro de tu archivo build.gradle a nivel de módulo.

Bibliotecas basadas en JUnit

En las listas de esta sección, se muestran cómo la plataforma organiza las clases basadas en JUnit en Android 9 (API nivel 28) y versiones posteriores.

android.test.base

Esta biblioteca consta de las siguientes clases, cada una de las cuales está en el paquete junit.framework:

La biblioteca también está compuesta por las siguientes clases, que se dieron de baja a partir de Android 9 (API nivel 28):

Paquete android.test

Paquete android.test.suitebuilder.annotation

Paquete com.android.internal.util

android.test.runner

Esta biblioteca consta de las siguientes clases:

Paquete android.test

Paquete junit.runner

La biblioteca también está compuesta por las siguientes clases, que se dieron de baja a partir de Android 9 (API nivel 28):

Paquete android.test

Paquete android.test.suitebuilder

android.test.mock

Esta biblioteca consta de las siguientes clases, cada una de las cuales está en el paquete android.test.mock:

La biblioteca también está compuesta por las siguientes clases, que se dieron de baja a partir de Android 9 (API nivel 28). Cada clase se encuentra en el paquete android.test.mock: