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:
- Abra o arquivo
build.gradle
para seu app. -
Na seção
repositories
, verifique se o repositório Maven do Google é exibido:allprojects { repositories { jcenter() google() } }
-
Para cada pacote do AndroidX Test que você quer usar, adicione o nome do pacote à seção
dependencies
. Por exemplo, para adicionar o pacoteespresso-core
, adicione as seguintes linhas:dependencies { ... androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' }
Atenção: o uso de dependências dinâmicas (por exemplo,
espresso-core:3.1.0+
) pode causar atualizações de versão inesperadas 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
). -
Se o app criar testes que dependam de classes baseadas em JUnit, por exemplo,
Assert
eTestSuiteLoader
, adicione as seguintes linhas na seçãoandroid
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: você só precisa incluir as bibliotecas que contenham as classes usadas no seu 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 seu 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 mais recentes
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 de um repositório Maven, você pode adicionar essas dependências ao seu ambiente de desenvolvimento incluindo cada dependência no seu 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
Esta biblioteca consiste nas seguintes classes, incluídas no pacote junit.framework
:
Assert
AssertionFailedError
ComparisonFailure
Protectable
Test
TestCase
TestFailure
TestListener
TestResult
TestSuite
A biblioteca também consiste nas seguintes classes, que tiveram o uso suspenso no Android 9 (API de nível 28):
pacote android.test
AndroidTestCase
FlakyTest
InstrumentationTestCase
InstrumentationTestSuite
PerformanceTestCase
UiThreadTest
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 de nível 28):
Pacote android.test
ActivityInstrumentationTestCase
ActivityInstrumentationTestCase2
ActivityTestCase
ActivityUnitTestCase
AndroidTestRunner
ApplicationTestCase
AssertionFailedError
ComparisonFailure
InstrumentationTestRunner
IsolatedContext
MoreAsserts
ProviderTestCase
RenamingDelegatingContext
ServiceTestCase
SingleLaunchActivityTestCase
SyncBaseInstrumentation
TestSuiteProvider
TouchUtils
ViewAsserts
Pacote android.test.suitebuilder
android.test.mock
Esta 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 de nível 28). Todas as classes estão localizadas no pacote android.test.mock
: