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