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 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 sebuah 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 sampai 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, dan View inti dan dasar pernyataan. Lihat Dasar-dasar dan Resep.
  • espresso-web - Berisi resource untuk dukungan WebView.
  • espresso-idling-resource - Mekanisme Espresso untuk sinkronisasi dengan tugas latar belakang.
  • espresso-contrib - Kontribusi eksternal yang berisi DatePicker, Tindakan 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 lebih lanjut versi terbaru dengan membaca catatan rilis.

Referensi lainnya

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

Contoh