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: