AndroidX Test adalah kumpulan library Jetpack yang memungkinkan Anda menjalankan pengujian terhadap aplikasi Android. Panduan 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. Alat ini juga berisi framework Pengujian UI seperti Espresso, UI Automator, dan simulator Robolectric.
Menambahkan library AndroidX Test
Untuk menggunakan AndroidX Test, Anda harus memodifikasi dependensi project aplikasi dalam lingkungan pengembangan Anda.
Menambahkan dependensi Gradle
Untuk mengubah 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 dependensi. 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 paling umum yang 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 Kelas untuk dokumentasi referensi khusus 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
lebih tinggi
Panduan dalam bagian ini hanya berlaku jika Anda menargetkan Android 9 (API level 28) atau yang lebih tinggi dan versi SDK minimum untuk aplikasi Anda ditetapkan 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
itu sendiri:
<!-- 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" />