Menyiapkan project untuk AndroidX Test

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:

  1. Buka file build.gradle untuk aplikasi Anda.
  2. Di bagian repositories, pastikan repositori Maven Google muncul:

        allprojects {
            repositories {
                jcenter()
                google()
            }
        }
  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:

        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).

  4. Jika aplikasi Anda membuat pengujian yang mengandalkan class berbasis JUnit, seperti Assert dan TestSuiteLoader, tambahkan baris berikut di bagian android 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:

Library ini juga terdiri dari class berikut yang tidak digunakan lagi di Android 9 (API level 28):

paket android.test

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

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: