AndroidX Test to zbiór bibliotek Jetpack, które umożliwiają przeprowadzanie testów z aplikacjami na Androida. Udostępniamy też szereg narzędzi, które pomogą Ci w pisaniu tych testów.
AndroidX Test udostępnia na przykład reguły JUnit4 do uruchamiania działań i interakcji z nimi w testach JUnit4. Zawiera również platformy do testowania UI, „Espresso”, „UI Automator” i „Robolectric Simulator”.
Dodawanie bibliotek testowych AndroidaX
Aby używać Testu AndroidX, musisz zmodyfikować zależności projektu aplikacji w środowisku programistycznym.
Dodaj zależności Gradle
Aby zmodyfikować zależności projektu aplikacji, wykonaj te czynności:
- Krok 1. Otwórz plik
build.gradle
modułu Gradle. - Krok 2. W sekcji repozytoriów sprawdź, czy narzędzie Google maven repozytorium pojawia się:
allprojects {
repositories {
jcenter()
google()
}
}
- Krok 3. Dodaj pakiet do każdego pakietu AndroidX Test, którego chcesz użyć
na
zależności. Aby na przykład dodać pakiet
espresso-core
, dodaj do w tych wierszach:
Odlotowe
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
Oto najczęstsze zależności dostępne w narzędziu AndroidX Test:
Odlotowe
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") }
Na stronie Informacje o wersji znajduje się tabela z najnowszymi wersjami artefaktu.
Szczegółowe informacje znajdziesz na stronach Package Index i Class Index. dokumentację tych bibliotek.
Projekty korzystające z wycofanych klas
Jeśli Twoja aplikacja korzysta z testów opartych na wycofanych interfejsach android.test
opartych na JUnit3
zajęć , takich jak InstrumentationTestCase
i TestSuiteLoader
, dodają
te wiersze w sekcji android
pliku:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
Dodaj deklaracje w pliku manifestu
Aby przeprowadzić testy, które bazują na wycofanych klasach android.test
opartych na JUnit3, dodaj
niezbędnych elementów <uses-library>
w pliku manifestu aplikacji testowej. Dla:
Jeśli na przykład dodasz testy zależne od biblioteki android.test.runner
, dodaj
ten element do pliku manifestu aplikacji:
<!-- 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" />
Aby określić bibliotekę, która zawiera określoną klasę opartą na JUnit, zapoznaj się z artykułem Biblioteki oparte na JUnit.
O czym warto pamiętać w przypadku korzystania z wycofanych klas i kierowania na Androida 9 lub
wyższa
Wskazówki w tej sekcji obowiązują tylko w przypadku aplikacji kierowanych na Androida 9 (poziom API 28) lub nowszy oraz minimalna wersja pakietu SDK w Twojej aplikacji to Android 9.
Biblioteka android.test.runner
domyślnie zależy od funkcji android.test.base
i android.test.mock
. Jeśli Twoja aplikacja korzysta tylko z zajęć z
android.test.base
lub android.test.mock
, możesz uwzględnić biblioteki przez
się:
<!-- 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" />