Menyiapkan project untuk AndroidX Test

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" />