Configurar projetos para o AndroidX Test

O AndroidX Test é uma coleção de bibliotecas do Jetpack que permite executar testes. em relação a apps Android. Ele também fornece uma série de ferramentas para ajudar você a escrever esses provas.

Por exemplo, o AndroidX Test fornece regras JUnit4 para iniciar atividades e interagir com elas nos testes do JUnit4. Ele também contém frameworks de testes de interface, como como Espresso, UI Automator e simulador Robolectric.

Adicionar bibliotecas do AndroidX Test

Para usar o AndroidX Test, é necessário modificar as dependências do projeto do seu app no seu ambiente de desenvolvimento.

Adicionar dependências do Gradle

Para modificar as dependências do projeto do app, siga estas etapas:

  • Etapa 1: abra o arquivo build.gradle do módulo do Gradle.
  • Etapa 2: na seção "Repositórios", verifique se o SDK do Google repositório é exibido:
  allprojects {
    repositories {
      jcenter()
      google()
    }
  }
  • Etapa 3: adicionar cada pacote do AndroidX Test que você quer usar ao na seção de dependências. Por exemplo, para adicionar o pacote espresso-core, adicione o seguintes linhas:

Groovy

dependencies {
        ...
        androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
    }

Kotlin

dependencies {
        ...
        androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion')
    }

Estas são as dependências de teste do AndroidX mais comuns disponíveis:

Groovy

dependencies {
    // Core library
    androidTestImplementation "androidx.test:core:$androidXTestVersion0"

    // AndroidJUnitRunner and JUnit Rules
    androidTestImplementation "androidx.test:runner:$testRunnerVersion"
    androidTestImplementation "androidx.test:rules:$testRulesVersion"

    // Assertions
    androidTestImplementation "androidx.test.ext:junit:$testJunitVersion"
    androidTestImplementation "androidx.test.ext:truth:$truthVersion"

    // Espresso dependencies
    androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion"
    androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion"

    // 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:$espressoVersion"
}

Kotlin

dependencies {
    // Core library
    androidTestImplementation("androidx.test:core:$androidXTestVersion")

    // AndroidJUnitRunner and JUnit Rules
    androidTestImplementation("androidx.test:runner:$testRunnerVersion")
    androidTestImplementation("androidx.test:rules:$testRulesVersion")

    // Assertions
    androidTestImplementation("androidx.test.ext:junit:$testJunitVersion")
    androidTestImplementation("androidx.test.ext:truth:$truthVersion")

    // Espresso dependencies
    androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion")

    // 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:$espressoVersion")
}

A página Notas de lançamento contém uma tabela com as versões mais recentes por artefato.

Consulte o Índice de pacote ou o Índice de classes para uma referência específica a documentação sobre essas bibliotecas.

Projetos que usam classes obsoletas

Se o app usa testes que dependem do android.test baseado em JUnit3 descontinuado classes , como InstrumentationTestCase e TestSuiteLoader, as seguintes linhas na seção android do arquivo:

android {
    ...
    useLibrary 'android.test.runner'

    useLibrary 'android.test.base'
    useLibrary 'android.test.mock'
  }

Adicionar declarações de manifesto

Para executar testes que dependem de classes android.test baseadas em JUnit3 descontinuadas, adicione os elementos necessários ao manifesto do app de teste. Para Por exemplo, se você adicionar testes que dependem da biblioteca android.test.runner, adicione o seguinte elemento ao manifesto do seu app:




Para determinar a biblioteca que contém uma determinada classe baseada em JUnit, consulte Bibliotecas baseadas em JUnit.

Considerações ao usar classes obsoletas e direcionadas ao Android 9 ou

mais alta

As orientações desta seção se aplicam somente se você estiver segmentando o Android 9 (nível 28 da API) ou mais recente e a versão mínima do SDK do app precisa estar definida como o Android 9.

A biblioteca android.test.runner depende implicitamente do android.test.base. e android.test.mock. Caso seu app use apenas turmas da android.test.base ou android.test.mock, é possível incluir as bibliotecas ao por conta própria: