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 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 informasi selengkapnya tentang menggunakan Espresso dalam pengujian Android, lihat referensi berikut.
Contoh
- Contoh Kode Espresso mencakup pilihan contoh Espresso lengkap.
- BasicSample: Contoh dasar Espresso.
- (lainnya...)