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 terbuka untuk dan penyesuaian. Espresso menguji ekspektasi, interaksi, dan pernyataan status jelas tanpa gangguan konten boilerplate, infrastruktur kustom, atau detail implementasi yang berantakan menjadi penghambat dalam prosesnya.
Pengujian espresso berjalan cepat dan optimal. Ini memungkinkan Anda meninggalkan waktu tunggu, sinkronisasi, tidur, dan polling di belakang saat memanipulasi dan menegaskan pada aplikasi UI saat dalam penyimpanan.
Target audiens
Espresso ditargetkan untuk developer, yang percaya bahwa pengujian otomatis adalah bagian integral dari siklus hidup pengembangan. Meskipun dapat digunakan untuk kotak hitam pengujian ini, kekuatan penuh Espresso akan terbuka bagi mereka yang sudah terbiasa dengan codebase yang sedang diuji.
Kemampuan sinkronisasi
Setiap kali pengujian Anda memanggil
onView()
,
Espresso menunggu untuk melakukan aksi UI atau pernyataan yang sesuai hingga
kondisi sinkronisasi berikut terpenuhi:
- Antrean pesan tidak memiliki pesan yang harus segera diakses Espresso {i>checkout<i}.
- Tidak ada instance
AsyncTask
yang sedang dijalankan pada suatu tugas. - Semua ditentukan developer resource nonaktif tidak ada aktivitas.
Dengan melakukan pemeriksaan ini, Espresso secara substansial meningkatkan kemungkinan hanya satu tindakan UI atau pernyataan yang dapat terjadi pada waktu tertentu. Kemampuan ini memberi Anda hasil pengujian yang lebih dapat diandalkan.
Paket
espresso-core
- Berisi matcher, tindakan, danView
inti dan dasar pernyataan. Lihat Dasar-dasar dan Resep.espresso-web
- Berisi resource untuk dukunganWebView
.espresso-idling-resource
- Mekanisme Espresso untuk sinkronisasi dengan tugas latar belakang.espresso-contrib
- Kontribusi eksternal yang berisiDatePicker
, TindakanRecyclerView
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 lebih lanjut versi terbaru dengan membaca catatan rilis.
Referensi lainnya
Untuk informasi selengkapnya tentang menggunakan Espresso dalam pengujian Android, lihat referensi berikut.
Contoh
- Contoh Kode Espresso mencakup pilihan lengkap contoh Espresso.
- BasicSample: Contoh dasar Espresso.
- (lainnya...)