Espresso

Gunakan Espresso untuk menulis pengujian UI Android yang ringkas, indah, dan andal.

Cuplikan kode berikut ini menunjukkan contoh pengujian Espresso:

Kotlin

    @Test
    fun greeterSaysHello() {
        onView(withId(R.id.name_field)).perform(typeText("Steve"))
        onView(withId(R.id.greet_button)).perform(click())
        onView(withText("Hello Steve!")).check(matches(isDisplayed()))
    }
    

Java

    @Test
    public void greeterSaysHello() {
        onView(withId(R.id.name_field)).perform(typeText("Steve"));
        onView(withId(R.id.greet_button)).perform(click());
        onView(withText("Hello Steve!")).check(matches(isDisplayed()));
    }
    

Core API berukuran kecil, dapat diprediksi, dan mudah dipelajari, tetapi dapat selalu disesuaikan. Espresso menguji dengan jelas ekspektasi, interaksi, dan pernyataan keadaan tanpa gangguan konten boilerplate, infrastruktur kustom, atau detail implementasi yang berantakan.

Pengujian espresso berjalan cepat dan optimal. Anda dapat menunggu, menyinkronkan, menidurkan, dan melakukan polling di latar belakang sementara pengujian Espresso memanipulasi dan menegaskan aplikasi UI saat sedang diam.

Target audiens:

Espresso ditargetkan untuk developer yang percaya bahwa pengujian otomatis merupakan bagian yang tidak terpisahkan dari siklus pengembangan. Meskipun dapat digunakan untuk pengujian black-box, potensi penuh Espresso dioptimalkan oleh mereka yang terbiasa dengan codebase yang diuji.

Kemampuan sinkronisasi

Setiap kali pengujian Anda memanggil onView(), Espresso menunggu untuk melakukan tindakan UI atau memberikan pernyataan yang sesuai sampai kondisi sinkronisasi berikut terpenuhi:

  • Antrean pesan kosong.
  • Tidak ada instance AsyncTask yang sedang menjalankan tugas.
  • Semua resource nonaktif yang ditentukan developer tidak aktif.

Dengan melakukan pemeriksaan ini, Espresso secara substansial meningkatkan kemungkinan bahwa hanya terdapat satu tindakan atau pernyataan UI yang dapat terjadi pada waktu tertentu. Kemampuan ini memberi Anda hasil pengujian yang lebih andal.

Paket

  • espresso-core - Berisi matcher, tindakan, dan pernyataan View inti dan dasar. Lihat Dasar dan Urutan langkah.
  • espresso-web - Berisi resource untuk dukungan WebView.
  • espresso-idling-resource - Mekanisme Espresso untuk sinkronisasi dengan tugas latar belakang.
  • espresso-contrib - Kontribusi eksternal yang berisi tindakan DatePicker, RecyclerView dan Drawer, pemeriksaan aksesibilitas, serta CountingIdlingResource.
  • espresso-intents - Ekstensi untuk memvalidasi dan menghentikan intent untuk pengujian hermetic.
  • espresso-remote - Lokasi fungsionalitas multi-proses Espresso.

Anda dapat mempelajari versi terbaru lebih lanjut dengan membaca catatan rilis.

Referensi lainnya

Untuk informasi selengkapnya tentang menggunakan Espresso dalam pengujian Android, lihat referensi berikut.

Contoh