إمكانية التشغيل التفاعلي

تتكامل ميزة إنشاء الرسائل مع أطر عمل الاختبار الشائعة.

إمكانية التشغيل التفاعلي مع Espresso

في التطبيق المختلط، يمكنك العثور على مكوّنات Compose داخل التسلسلات الهرميّة للعرض والعروض داخل العناصر القابلة للتجميع في Compose (من خلال العنصر القابل للتجميع AndroidView).

ولا يلزم اتخاذ خطوات خاصة لمطابقة أي من النوعين. أنت تطابق عدد المشاهدات مع عناصر onView وCompose في Espresso باستخدام ComposeTestRule

@Test
fun androidViewInteropTest() {
    // Check the initial state of a TextView that depends on a Compose state.
    Espresso.onView(withText("Hello Views")).check(matches(isDisplayed()))
    // Click on the Compose button that changes the state.
    composeTestRule.onNodeWithText("Click here").performClick()
    // Check the new value.
    Espresso.onView(withText("Hello Compose")).check(matches(isDisplayed()))
}

إمكانية التشغيل التفاعلي مع UiAutomator

لا يمكن الوصول إلى العناصر القابلة للإنشاء تلقائيًا من UiAutomator إلا من خلال وسائل وصف ملائمة (النص المعروض ووصف المحتوى وما إلى ذلك). إذا أردت الوصول إلى أيّ عنصر قابل للتجميع يستخدم Modifier.testTag، عليك تفعيل السمة الدلالية testTagsAsResourceId للفرع الفرعي لعنصر التجميع المعني. يكون تفعيل هذا السلوك مفيدًا للعناصر القابلة للتجميع التي لا تحتوي على أي اسم معرِّف آخر فريد، مثل العناصر القابلة للتجميع التي يمكن التمرير فيها (على سبيل المثال، LazyColumn).

فعِّل السمة الدلالية مرة واحدة فقط في أعلى التسلسل الهرمي للعناصر القابلة للتجميع لضمان إمكانية الوصول إلى جميع العناصر القابلة للتجميع المُدمجة التي تحتوي على Modifier.testTag من UiAutomator.

Scaffold(
    // Enables for all composables in the hierarchy.
    modifier = Modifier.semantics {
        testTagsAsResourceId = true
    }
){
    // Modifier.testTag is accessible from UiAutomator for composables nested here.
    LazyColumn(
        modifier = Modifier.testTag("myLazyColumn")
    ){
        // Content
    }
}

يمكن الوصول إلى أي عنصر قابل للتجميع يتضمّن Modifier.testTag(tag) باستخدام By.res(resourceName) باستخدام tag نفسه المستخدَم في resourceName.

val device = UiDevice.getInstance(getInstrumentation())

val lazyColumn: UiObject2 = device.findObject(By.res("myLazyColumn"))
// Some interaction with the lazyColumn.

مراجع إضافية

  • اختبار التطبيقات على Android: تقدّم الصفحة المقصودة الرئيسية لاختبار Android نظرة أوسع على أساسيات الاختبار وأساليبه.
  • أساسيات الاختبار: اطّلِع على مزيد من المعلومات عن المفاهيم الأساسية لاختبار تطبيق Android.
  • الاختبارات المحلية: يمكنك إجراء بعض الاختبارات. محليًا على محطة العمل الخاصة بك.
  • الاختبارات الآلية: مناسبة التدرب على إجراء الاختبارات المعملية أيضًا. وهذا يعني أن الاختبارات التي يتم إجراؤها مباشرة على الجهاز فقط.
  • الدمج المستمر: يتيح لك الدمج المستمر دمج اختباراتك في عملية النشر. المشروع.
  • اختبار أحجام الشاشات المختلفة: باستخدام بعض الأجهزة العديدة المتاحة للمستخدمين، فينبغي عليك اختبارها لشاشات مختلفة مختلفة.
  • Espresso: على الرغم من أنّ Espresso مخصّص لواجهات مستنِدة إلى الاطّلاع، يمكن أن تكون المعرفة به مفيدة لبعض جوانب اختبار ميزة "الإنشاء".