O segundo Visualização do Desenvolvedor do Android 11 já está disponível, teste e compartilhe seu feedback.

Configurar projetos para o AndroidX Test

Para usar o AndroidX Test, é necessário incluir várias bibliotecas específicas de teste. Este guia explica como declarar essas bibliotecas nos arquivos do projeto do seu app e mostra como as bibliotecas do AndroidX Test são organizadas.

Adicionar bibliotecas do AndroidX Test

Para usar o AndroidX Test, é preciso modificar as dependências e o manifesto do caminho de classe do projeto do seu app no ambiente de desenvolvimento, conforme mostrado nas seções a seguir.

Adicionar dependências do Gradle

Para modificar as dependências do caminho de classe do projeto do seu app, siga estas etapas:

  1. Abra o arquivo build.gradle do app.
  2. Na seção repositories, verifique se o repositório Maven do Google é exibido:

        allprojects {
            repositories {
                jcenter()
                google()
            }
        }
  3. Para cada pacote do AndroidX Test que você quer usar, adicione o nome correspondente à seção dependencies. Por exemplo, para adicionar o pacote espresso-core, adicione estas linhas:

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

    Cuidado: o uso de dependências dinâmicas, como espresso-core:3.1.0+, pode causar atualizações inesperadas da versão e incompatibilidades de regressão. Recomendamos que você especifique explicitamente um número de versão específico, por exemplo, espresso-core:3.1.0.

  4. Se seu app cria testes que dependem de classes baseadas em JUnit, como Assert e TestSuiteLoader, adicione estas linhas na seção android do arquivo:
        android {
            ...
    
            // Gradle automatically adds 'android.test.runner' as a dependency.
            useLibrary 'android.test.runner'
    
            useLibrary 'android.test.base'
            useLibrary 'android.test.mock'
        }

    Observação: basta incluir as bibliotecas que contêm as classes usadas no app. Para ver uma lista das classes que aparecem em cada biblioteca, consulte Bibliotecas baseadas em JUnit.

Adicionar declarações de manifesto

Para executar testes que dependem de classes baseadas em JUnit, adicione os elementos <uses-library> necessários ao manifesto do app de teste. Por exemplo, se você adicionar testes que dependem da biblioteca android.test.runner, adicione o seguinte elemento ao manifesto do 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 a biblioteca que contém uma determinada classe baseada em JUnit, consulte Bibliotecas baseadas em JUnit.

Considerações ao segmentar o Android 9 ou versões posteriores

As orientações apresentadas nesta seção só serão válidas se você estiver segmentando o Android 9 (API nível 28) ou posterior e se a versão mínima do SDK do app estiver definida como Android 9 (API nível 28) ou posterior.

A biblioteca android.test.runner depende implicitamente das bibliotecas android.test.base e android.test.mock. Se o app só usa classes de android.test.base ou android.test.mock, você pode incluir as bibliotecas sozinhas:

<!-- 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 dependências do AndroidX Test

O AndroidX Test inclui várias dependências, conforme mostrado nas seções a seguir.

Dependências do Gradle

Estas dependências do Gradle estão disponíveis no 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'
    }
    

Conforme discutido em Como adicionar dependências do Gradle a partir de um repositório Maven, você pode adicionar essas dependências ao ambiente de desenvolvimento incluindo cada dependência no arquivo build.gradle do módulo.

Bibliotecas baseadas em JUnit

As listas desta seção mostram como a plataforma organiza classes do JUnit no Android 9 (API nível 28) e versões posteriores.

android.test.base

Essa biblioteca consiste nas seguintes classes, incluídas no pacote junit.framework:

A biblioteca também consiste nas seguintes classes, que tiveram o uso suspenso no Android 9 (API nível 28):

Pacote android.test

Pacote android.test.suitebuilder.annotation

Pacote com.android.internal.util

android.test.runner

Essa biblioteca consiste nas seguintes classes:

Pacote android.test

Pacote junit.runner

A biblioteca também consiste nas seguintes classes, que tiveram o uso suspenso no Android 9 (API nível 28):

Pacote android.test

Pacote android.test.suitebuilder

android.test.mock

Essa biblioteca consiste nas seguintes classes, incluídas no pacote android.test.mock:

A biblioteca também consiste nas seguintes classes, que tiveram o uso suspenso no Android 9 (API nível 28). Todas as classes estão localizadas no pacote android.test.mock: