Untuk menggunakan AndroidX Test, Anda harus menyertakan beberapa library pengujian khusus. Panduan ini menjelaskan cara mendeklarasikan library ini dalam file project aplikasi Anda dan menunjukkan bagaimana library AndroidX Test dikelola.
Menambahkan library AndroidX Test
Untuk menggunakan AndroidX Test, Anda harus memodifikasi dependensi dan manifes classpath project aplikasi di dalam lingkungan pengembangan Anda, seperti yang ditunjukkan pada bagian berikut.
Menambahkan dependensi Gradle
Untuk memodifikasi dependensi classpath project aplikasi Anda, lakukan langkah-langkah berikut:
- Buka file
build.gradle
untuk aplikasi Anda. -
Di bagian
repositories
, pastikan repositori Maven Google muncul:allprojects { repositories { jcenter() google() } }
-
Untuk setiap paket AndroidX Test yang ingin Anda gunakan, tambahkan nama paketnya ke bagian
dependencies
. Misalnya, untuk menambahkan paketespresso-core
, tambahkan baris berikut:dependencies { ... androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' }
Perhatian: Menggunakan dependensi dinamis (misalnya,
espresso-core:3.1.0+
) dapat menyebabkan update versi yang tidak terduga dan inkompatibilitas regresi. Sebaiknya Anda menentukan nomor versi tertentu secara eksplisit (misalnya,espresso-core:3.1.0
). -
Jika aplikasi Anda membuat pengujian yang mengandalkan class berbasis JUnit, seperti
Assert
danTestSuiteLoader
, tambahkan baris berikut di bagianandroid
dari file:android { ... // Gradle automatically adds 'android.test.runner' as a dependency. useLibrary 'android.test.runner' useLibrary 'android.test.base' useLibrary 'android.test.mock' }
Catatan: Anda hanya perlu menyertakan library yang berisi class yang digunakan dalam aplikasi. Untuk daftar class yang muncul di setiap library, lihat library berbasis JUnit.
Menambahkan deklarasi manifes
Untuk menjalankan pengujian yang mengandalkan class berbasis JUnit, 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:
<!-- 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 menargetkan Android 9 atau yang 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 disetel ke Android 9 (API level 28) atau yang lebih tinggi.
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" />
Daftar dependensi AndroidX Test
AndroidX Test menyertakan banyak dependensi, seperti yang ditunjukkan pada bagian berikut.
Dependensi Gradle
Dependensi berbasis Gradle berikut tersedia di AndroidX Test:
dependencies {
// Core library
androidTestImplementation 'androidx.test:core:1.0.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
// Assertions
androidTestImplementation 'androidx.test.ext:junit:1.0.0'
androidTestImplementation 'androidx.test.ext:truth:1.0.0'
androidTestImplementation 'com.google.truth:truth:0.42'
// Espresso dependencies
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.0'
androidTestImplementation 'androidx.test.espresso.idling:idling-concurrent:3.1.0'
// 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:3.1.0'
}
Seperti yang dibahas dalam Menambahkan dependensi Gradle dari repositori Maven, Anda dapat menambahkan dependensi ini ke lingkungan pengembangan dengan menambahkan setiap dependensi dalam file build.gradle
tingkat modul Anda.
Library berbasis JUnit
Daftar di bagian ini menunjukkan cara platform mengelola class berbasis JUnit di Android 9 (API level 28) dan yang lebih tinggi.
android.test.base
Library ini terdiri dari class berikut, yang setiap class-nya terdapat di dalam paket junit.framework
:
Assert
AssertionFailedError
ComparisonFailure
Protectable
Test
TestCase
TestFailure
TestListener
TestResult
TestSuite
Library ini juga terdiri dari class berikut yang tidak digunakan lagi di Android 9 (API level 28):
paket android.test
AndroidTestCase
FlakyTest
InstrumentationTestCase
InstrumentationTestSuite
PerformanceTestCase
UiThreadTest
paket android.test.suitebuilder.annotation
paket com.android.internal.util
android.test.runner
Library ini terdiri dari class berikut:
paket android.test
paket junit.runner
Library ini juga terdiri dari class berikut yang tidak digunakan lagi di Android 9 (API level 28):
paket android.test
ActivityInstrumentationTestCase
ActivityInstrumentationTestCase2
ActivityTestCase
ActivityUnitTestCase
AndroidTestRunner
ApplicationTestCase
AssertionFailedError
ComparisonFailure
InstrumentationTestRunner
IsolatedContext
MoreAsserts
ProviderTestCase
RenamingDelegatingContext
ServiceTestCase
SingleLaunchActivityTestCase
SyncBaseInstrumentation
TestSuiteProvider
TouchUtils
ViewAsserts
paket android.test.suitebuilder
android.test.mock
Library ini terdiri dari class berikut, yang setiap class-nya terdapat di dalam paket android.test.mock
:
Library ini juga terdiri dari class berikut yang tidak digunakan lagi pada Android 9 (API level 28). Setiap class berada dalam paket android.test.mock
: