يمكن دمج Compose مع أُطر عمل الاختبار الشائعة.
إمكانية التشغيل التفاعلي مع Espresso
في التطبيق المختلط، يمكنك العثور على مكوّنات Compose داخل التسلسلات الهرميّة للعرض
والعروض داخل العناصر القابلة للتجميع في Compose (من خلال العنصر القابل للتجميع AndroidView
).
ولا يلزم اتّخاذ أي خطوات خاصة لمطابقة أيّ من النوعَين. يمكنك مطابقة طرق العرض مع عناصر onView
من 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 مخصّص لواجهات مستنِدة إلى الاطّلاع، يمكن أن تكون المعرفة به مفيدة لبعض جوانب اختبار ميزة "الإنشاء".