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 pernyataanView
inti dan dasar. Lihat Dasar dan Urutan langkah.espresso-web
- Berisi resource untuk dukunganWebView
.espresso-idling-resource
- Mekanisme Espresso untuk sinkronisasi dengan tugas latar belakang.espresso-contrib
- Kontribusi eksternal yang berisi tindakanDatePicker
,RecyclerView
danDrawer
, pemeriksaan aksesibilitas, sertaCountingIdlingResource
.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
- Contoh Kode Espresso mencakup pilihan lengkap contoh Espresso.
- BasicSample: Contoh Espresso dasar.
- (lainnya...)