إسبريسو
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك استخدام Espresso لكتابة اختبارات مختصرة ورائعة وموثوقة لواجهة مستخدم Android.
يعرض مقتطف الرمز التالي مثالاً لاختبار قهوة الإسبريسو:
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()));
}

تعد واجهة برمجة التطبيقات الأساسية صغيرة ويمكن التنبؤ بها وسهلة التعلم كما أنها لا تزال مفتوحة
التخصيص. يتم اختبار Espresso استنادًا إلى توقعات العملاء وتفاعلاتهم وتأكيداتهم.
بوضوح بدون تشتيت المحتوى النموذجي، والبنية الأساسية المخصصة،
أو تفاصيل التنفيذ الفوضوية التي تعترض الطريق.
يتم إجراء اختبارات الإسبريسو بسرعة مثالية! يتيح لك ذلك قضاء وقت الانتظار والمزامنات والنوم
والاستطلاعات خلفها أثناء التلاعب بالتطبيق وتأكيده
واجهة المستخدم في حال عدم النشاط
الجمهور المستهدَف
تستهدف Espresso المطوّرين الذين يعتقدون أنّ الاختبار الآلي
جزءًا لا يتجزأ من دورة حياة التطوير. وفي حين أنه يمكن استخدامه للمربع الأسود
لاختبارات قهوة الإسبريسو، يستطيع من هم على دراية
قاعدة التعليمات البرمجية قيد الاختبار.
إمكانات المزامنة
في كل مرة يستدعي الاختبار
onView()
،
تنتظر Espresso تنفيذ الإجراء المقابل أو تأكيد واجهة المستخدم حتى
استيفاء شروط المزامنة التالية:
- لا تتضمن قائمة انتظار الرسائل أي رسائل تحتاج Espresso إلى إرسالها على الفور.
الدفع.
- ما مِن نُسخ من عملية "
AsyncTask
" يتم تنفيذها حاليًا
مهمة ما.
- كل من تحديد المطوّر
موارد عدم النشاط غير نشطة.
من خلال إجراء هذه عمليات الفحص، تزيد Espresso بشكل كبير من احتمال
يمكن أن يحدث إجراء أو تأكيد واحد فقط لواجهة المستخدم في أي وقت. هذه الإمكانية
نتائج اختبار أكثر موثوقية وموثوقية.
الطرود
espresso-core
- يحتوي على مُطابقات View
الأساسية والأساسية والإجراءات
التأكيدات. عرض
أساسيات
ووصفات الطعام.
espresso-web
: يحتوي على موارد لدعم WebView
.
espresso-idling-resource
-
آلية الإسبريسو للمزامنة مع المهام التي تعمل في الخلفية.
espresso-contrib
- المساهمات الخارجية التي تتضمن DatePicker
،
إجراءات RecyclerView
وDrawer
، وعمليات التحقّق من تسهيل الاستخدام،
CountingIdlingResource
espresso-intents
-
إضافة للتحقّق من صحة نية إجراء اختبار مُحكَم وجمعها
espresso-remote
- موقع وظيفة العمليات المتعددة في Espresso.
يمكنك معرفة المزيد عن أحدث الإصدارات من خلال قراءة
ملاحظات الإصدار.
مصادر إضافية
لمزيد من المعلومات حول استخدام قهوة الإسبريسو في اختبارات Android، يُرجى الرجوع إلى
الموارد التالية.
نماذج
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Espresso\n\nUse Espresso to write concise, beautiful, and reliable Android UI tests.\n\nThe following code snippet shows an example of an Espresso test:\n\n\u003cbr /\u003e\n\n### Kotlin\n\n```kotlin\n@Test\nfun greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"))\n onView(withId(R.id.greet_button)).perform(click())\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()))\n}\n```\n\n### Java\n\n```java\n@Test\npublic void greeterSaysHello() {\n onView(withId(R.id.name_field)).perform(typeText(\"Steve\"));\n onView(withId(R.id.greet_button)).perform(click());\n onView(withText(\"Hello Steve!\")).check(matches(isDisplayed()));\n}\n```\n\n\u003cbr /\u003e\n\nThe core API is small, predictable, and easy to learn and yet remains open for\ncustomization. Espresso tests state expectations, interactions, and assertions\nclearly without the distraction of boilerplate content, custom infrastructure,\nor messy implementation details getting in the way.\n\nEspresso tests run optimally fast! It lets you leave your waits, syncs, sleeps,\nand polls behind while it manipulates and asserts on the application\nUI when it is at rest.\n\nTarget audience\n---------------\n\nEspresso is targeted at developers, who believe that automated testing is an\nintegral part of the development lifecycle. While it can be used for black-box\ntesting, Espresso's full power is unlocked by those who are familiar with the\ncodebase under test.\n\nSynchronization capabilities\n----------------------------\n\nEach time your test invokes\n[`onView()`](/reference/androidx/test/espresso/Espresso#onView(org.hamcrest.Matcher%3Candroid.view.View%3E)),\nEspresso waits to perform the corresponding UI action or assertion until the\nfollowing synchronization conditions are met:\n\n- The message queue doesn't have any messages that Espresso needs to immediately process.\n- There are no instances of [AsyncTask](/reference/android/os/AsyncTask) currently executing a task.\n- All developer-defined [idling resources](/training/testing/espresso/idling-resource) are idle.\n\nBy performing these checks, Espresso substantially increases the likelihood that\nonly one UI action or assertion can occur at any given time. This capability\ngives you more reliable and dependable test results.\n\nPackages\n--------\n\n- `espresso-core` - Contains core and basic `View` matchers, actions, and assertions. See [Basics](/training/testing/espresso/basics) and [Recipes](/training/testing/espresso/recipes).\n- [`espresso-web`](/training/testing/espresso/web) - Contains resources for `WebView` support.\n- [`espresso-idling-resource`](/training/testing/espresso/idling-resource) - Espresso's mechanism for synchronization with background jobs.\n- `espresso-contrib` - External contributions that contain `DatePicker`, `RecyclerView` and `Drawer` actions, accessibility checks, and `CountingIdlingResource`.\n- [`espresso-intents`](/training/testing/espresso/intents) - Extension to validate and stub intents for hermetic testing.\n- `espresso-remote` - Location of Espresso's [multi-process](/training/testing/espresso/multiprocess) functionality.\n\nYou can learn more about the latest versions by reading the\n[release notes](/topic/libraries/testing-support-library/release-notes).\n\nAdditional resources\n--------------------\n\nFor more information about using Espresso in Android tests, consult the\nfollowing resources.\n\n### Samples\n\n- [Espresso Code Samples](https://github.com/googlesamples/android-testing) includes a full selection of Espresso samples.\n- [BasicSample](https://github.com/android/testing-samples/tree/main/ui/espresso/BasicSample): Basic Espresso sample.\n- [(more...)](/training/testing/espresso/additional-resources#samples)"]]