AndroidX Test adalah kumpulan library Jetpack yang memungkinkan Anda menjalankan pengujian terhadap aplikasi Android. Alat ini juga menyediakan serangkaian alat untuk membantu Anda pengujian.
Misalnya, AndroidX Test menyediakan aturan JUnit4 untuk memulai aktivitas dan berinteraksi dengannya dalam pengujian JUnit4. Ini juga berisi kerangka kerja Pengujian UI seperti seperti Espresso, UI Automator, dan simulator Robolectric.
Menambahkan library AndroidX Test
Untuk menggunakan AndroidX Test, Anda harus memodifikasi dependensi project aplikasi Anda 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 Maven Google repositori akan muncul:
allprojects {
repositories {
jcenter()
google()
}
}
- Langkah 3: Untuk setiap paket AndroidX Test yang ingin Anda gunakan, tambahkan paketnya
nama ke
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 sesuai artefak.
Lihat Indeks Paket atau Indeks Class untuk referensi tertentu dokumentasi lain di library ini.
Project yang menggunakan class yang tidak digunakan lagi
Jika aplikasi Anda menggunakan pengujian yang mengandalkan 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 untuk manifes aplikasi pengujian Anda. Sebagai
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 android.test.base
dan library android.test.mock
. Jika aplikasi Anda hanya menggunakan class dari
android.test.base
atau android.test.mock
, Anda dapat menyertakan library dengan
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" />