Menguji tata letak Compose

Uji UI aplikasi Anda untuk memverifikasi bahwa perilaku kode Compose Anda sudah benar. Dengan begitu, Anda dapat mendeteksi error sejak awal dan meningkatkan kualitas aplikasi.

Compose menyediakan serangkaian API pengujian untuk menemukan elemen, memverifikasi atributnya, dan melakukan tindakan pengguna. API juga mencakup fitur lanjutan seperti manipulasi waktu. Gunakan API ini untuk membuat pengujian yang andal yang memverifikasi perilaku aplikasi Anda.

View

Jika Anda bekerja dengan tampilan, bukan Compose, lihat bagian Menguji aplikasi di Android secara umum.

Khususnya, tempat yang tepat untuk memulai adalah panduan Mengotomatiskan pengujian UI. Panduan ini menjelaskan cara mengotomatiskan pengujian yang berjalan di perangkat, termasuk saat menggunakan tampilan.

Konsep Utama

Berikut adalah beberapa konsep utama untuk menguji kode Compose Anda:

  • Semantik: Semantik memberikan makna pada UI Anda, sehingga pengujian dapat berinteraksi dengan elemen tertentu.
  • API pengujian: API pengujian memungkinkan Anda menemukan elemen, memverifikasi atributnya, dan melakukan tindakan pengguna.
  • Sinkronisasi: Sinkronisasi memverifikasi bahwa pengujian menunggu UI tidak ada aktivitas sebelum melakukan tindakan atau membuat pernyataan.
  • Interoperabilitas: Interoperabilitas memungkinkan pengujian berfungsi dengan elemen berbasis Compose dan View di aplikasi yang sama.

Tips praktis pengujian

Lihat tips praktis pengujian untuk mengetahui ringkasan semua topik utama yang harus Anda pelajari tentang pengujian di Compose.

Penyiapan

Siapkan aplikasi untuk memungkinkan Anda menguji kode komposisi.

Pertama, tambahkan dependensi berikut ke file build.gradle modul yang berisi pengujian UI Anda:

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")

Modul ini mencakup ComposeTestRule dan implementasi untuk Android yang disebut AndroidComposeTestRule. Melalui aturan ini, Anda dapat menetapkan konten Compose atau mengakses aktivitas. Anda membuat aturan menggunakan fungsi factory, baik createComposeRule atau, jika Anda memerlukan akses ke aktivitas, createAndroidComposeRule. Pengujian UI standar untuk Compose terlihat seperti ini:

// file: app/src/androidTest/java/com/package/MyComposeTest.kt

class MyComposeTest {

    @get:Rule val composeTestRule = createComposeRule()
    // use createAndroidComposeRule<YourActivity>() if you need access to
    // an activity

    @Test
    fun myTest() {
        // Start the app
        composeTestRule.setContent {
            MyAppTheme {
                MainScreen(uiState = fakeUiState, /*...*/)
            }
        }

        composeTestRule.onNodeWithText("Continue").performClick()

        composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
    }
}

Referensi Tambahan

  • Menguji aplikasi di Android: Halaman landing utama pengujian Android memberikan gambaran yang lebih luas tentang dasar-dasar dan teknik pengujian.
  • Dasar-dasar pengujian: Pelajari lebih lanjut konsep inti di balik pengujian aplikasi Android.
  • Pengujian lokal: Anda dapat menjalankan beberapa pengujian secara lokal, di workstation Anda sendiri.
  • Pengujian berinstrumen: Sebaiknya jalankan juga pengujian berinstrumen. Artinya, pengujian yang berjalan langsung di perangkat.
  • Continuous integration: Continuous integration memungkinkan Anda mengintegrasikan pengujian ke dalam pipeline deployment.
  • Uji berbagai ukuran layar: Dengan banyaknya perangkat yang tersedia bagi pengguna, Anda harus menguji berbagai ukuran layar.
  • Espresso: Meskipun ditujukan untuk UI berbasis View, pengetahuan Espresso masih dapat membantu untuk beberapa aspek pengujian Compose.

Codelab

Untuk mempelajari lebih lanjut, coba codelab Pengujian Jetpack Compose.

Contoh