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

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

إمكانية التشغيل التفاعلي مع قهوة الإسبريسو

في التطبيق المختلط، يمكنك العثور على مكونات الإنشاء داخل العرض الهرمي المشاهدات داخل عناصر "إنشاء" القابلة للإنشاء (عبر عنصر 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: مخصّصة للاستخدام المستند إلى العرض يمكن أن تكون واجهات المستخدم والمعرفة بالإسبريسو مفيدة في بعض جوانب Compose اختبار الفرضية.