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:
dependencies {
...
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
}
dependencies {
...
androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion')
}
Estas são as dependências de teste do AndroidX mais comuns disponíveis:
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"
}
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 <uses-library>
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:
<!-- 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 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:
<!-- 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" />