AndroidX Test adalah kumpulan library Jetpack yang memungkinkan Anda menjalankan pengujian terhadap aplikasi Android. Alat ini juga menyediakan serangkaian alat untuk membantu Anda menulis pengujian ini.
Misalnya, AndroidX Test menyediakan aturan JUnit4 untuk memulai aktivitas dan berinteraksi dengannya dalam pengujian JUnit4. Direktori ini juga berisi framework Pengujian UI seperti Espresso, UI Automator, dan simulator Robolectric.
Menambahkan library AndroidX Test
Untuk menggunakan AndroidX Test, Anda harus mengubah dependensi project aplikasi di dalam lingkungan pengembangan Anda.
Menambahkan dependensi Gradle
Untuk memodifikasi dependensi project aplikasi Anda, selesaikan langkah-langkah berikut:
- Langkah 1: Buka file
build.gradle
untuk modul Gradle Anda. - Langkah 2: Di bagian repositori, pastikan repositori Maven Google muncul:
allprojects {
repositories {
jcenter()
google()
}
}
- Langkah 3: Untuk setiap paket AndroidX Test yang ingin Anda gunakan, tambahkan nama paketnya ke bagian dependencies. Misalnya, untuk menambahkan paket
espresso-core
, tambahkan baris berikut:
Groovy
dependencies { ... androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion') }
Berikut adalah dependensi AndroidX Test yang paling umum tersedia:
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") }
Halaman Catatan Rilis berisi tabel dengan versi terbaru per artefak.
Lihat Indeks Paket atau Indeks Class untuk dokumentasi referensi spesifik tentang library ini.
Project yang menggunakan class yang tidak digunakan lagi
Jika aplikasi Anda menggunakan pengujian yang mengandalkan class android.test
berbasis JUnit3 yang tidak digunakan lagi , seperti InstrumentationTestCase
dan TestSuiteLoader
, tambahkan baris berikut di bagian android
file:
android {
...
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
Menambahkan deklarasi manifes
Untuk menjalankan pengujian yang mengandalkan class android.test
berbasis JUnit3 yang tidak digunakan lagi, tambahkan elemen <uses-library>
yang diperlukan ke manifes aplikasi pengujian Anda. Misalnya, jika Anda menambahkan pengujian yang bergantung pada library android.test.runner
, tambahkan elemen berikut ke manifes aplikasi Anda:
<!-- 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" />
Untuk menentukan library yang berisi class berbasis JUnit yang diberikan, lihat library berbasis JUnit.
Pertimbangan saat menggunakan class yang tidak digunakan lagi dan menargetkan Android 9 atau yang lebih tinggi
lebih tinggi
Panduan dalam bagian ini hanya berlaku jika Anda menargetkan Android 9 (level API 28) atau yang lebih tinggi dan versi SDK minimum untuk aplikasi Anda disetel ke Android 9.
Library android.test.runner
secara implisit bergantung pada library android.test.base
dan android.test.mock
. Jika aplikasi Anda hanya menggunakan class dari
android.test.base
atau android.test.mock
, Anda dapat menyertakan library tersebut dengan sendirinya:
<!-- 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" />