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