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()));
}

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

Pengujian espresso berjalan cepat dan optimal. Library ini memungkinkan Anda menunggu, menyinkronkan, tidur, dan melakukan polling sambil memanipulasi dan menegaskan di UI aplikasi saat sedang tidak aktif.

Target audiens

Espresso ditargetkan untuk developer yang percaya bahwa pengujian otomatis merupakan bagian integral dari siklus proses pengembangan. Meskipun dapat digunakan untuk pengujian black-box, kekuatan penuh Espresso dimanfaatkan oleh mereka yang terbiasa dengan codebase yang sedang diuji.

Kemampuan sinkronisasi

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

  • Antrean pesan tidak memiliki pesan yang harus segera diproses oleh Espresso.
  • Tidak ada instance AsyncTask yang saat ini mengeksekusi tugas.
  • Semua resource nonaktif yang ditentukan developer tidak aktif.

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

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 mengetahui informasi selengkapnya tentang penggunaan Espresso dalam pengujian Android, lihat referensi berikut.

Contoh