اختبِر واجهة مستخدِم تطبيقك للتأكّد من أنّ سلوك رمز Compose صحيح. يتيح لك ذلك رصد الأخطاء في وقت مبكر وتحسين جودة تطبيقك.
يوفر Compose مجموعة من واجهات برمجة التطبيقات للاختبار للعثور على العناصر والتحقّق من سماتها وتنفيذ إجراءات المستخدم. تتضمّن واجهات برمجة التطبيقات أيضًا ميزات متقدّمة، مثل التحكّم في الوقت. استخدِم واجهات برمجة التطبيقات هذه لإنشاء اختبارات قوية تتحقّق من سلوك تطبيقك.
المشاهدات
إذا كنت تستخدم المشاهدات بدلاً من Compose، يُرجى الاطّلاع على قسم اختبار التطبيقات على Android العام.
على وجه الخصوص، من المفيد البدء بدليل أتمتة اختبارات واجهة المستخدم. يوضّح هذا الدليل كيفية أتمتة الاختبارات التي يتم إجراؤها على الجهاز فقط، بما في ذلك عند استخدام المشاهدات.
المفاهيم الرئيسية
في ما يلي بعض المفاهيم الرئيسية لاختبار رمز Compose:
- الدلالات: تمنح الدلالات معنى لواجهة المستخدم، ما يسمح للاختبارات بالتفاعل مع عناصر معيّنة.
- واجهات برمجة التطبيقات للاختبار: تتيح لك واجهات برمجة التطبيقات للاختبار العثور على العناصر والتحقّق من سماتها وتنفيذ إجراءات المستخدم.
- المزامنة: تتحقّق المزامنة من أنّ الاختبارات تنتظر أن تصبح واجهة المستخدم غير نشطة قبل تنفيذ الإجراءات أو إجراء التأكيدات.
- إمكانية التشغيل التفاعلي: تتيح إمكانية التشغيل التفاعلي للاختبارات العمل مع عناصر Compose والعناصر المستندة إلى العرض في التطبيق نفسه.
ورقة الغش للاختبار
يُرجى الاطّلاع على ورقة الغش للاختبار للحصول على نظرة عامة على جميع المواضيع الرئيسية التي يجب التعرّف عليها بشأن الاختبار في Compose.
الإعداد
يمكنك إعداد تطبيقك للسماح لك باختبار رمز Compose.
أولاً، أضِف التبعيتَين التاليتَين إلى ملف build.gradle الخاص بالوحدة التي تحتوي على اختبارات واجهة المستخدم:
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
تتضمّن هذه الوحدة ComposeTestRule وتنفيذًا لنظام Android
يُسمى AndroidComposeTestRule. من خلال هذه القاعدة، يمكنك ضبط محتوى Compose أو الوصول إلى النشاط. يمكنك إنشاء القواعد باستخدام دوال المصنع،
إما createComposeRule أو createAndroidComposeRule إذا كنت بحاجة إلى الوصول إلى نشاط. يبدو اختبار واجهة المستخدم النموذجي لـ Compose على النحو التالي:
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
موارد إضافية
- اختبار التطبيقات على Android: توفّر الصفحة المقصودة الرئيسية لاختبار Android نظرة أوسع على أساسيات الاختبار وتقنياته.
- أساسيات الاختبار: مزيد من المعلومات عن المفاهيم الأساسية لاختبار تطبيق Android.
- الاختبارات المحلية: يمكنك إجراء بعض الاختبارات محليًا على محطة العمل الخاصة بك.
- اختبارات لقياس حالة التطبيق: من الممارسات الجيدة أيضًا إجراء اختبارات لقياس حالة التطبيق. أي الاختبارات التي يتم إجراؤها مباشرةً على الجهاز.
- التكامل المستمر: يتيح لك التكامل المستمر دمج اختباراتك في مسار النشر.
- اختبار أحجام الشاشات المختلفة: مع توفر العديد من الأجهزة للمستخدمين، يجب إجراء الاختبارات لأحجام الشاشات المختلفة.
- إسبريسو: على الرغم من أنّ Espresso مُصمَّمة لواجهات المستخدم المستندة إلى العرض ، إلا أنّ معرفة أدوات Espresso يمكن أن تكون مفيدة في بعض جوانب اختبار Compose.
درس تطبيقي حول الترميز
لمزيد من المعلومات، يُرجى تجربة الدرس التطبيقي حول اختبار Jetpack Compose.
نماذج
اقتراحات مخصصة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- الدلالات في Compose
- إزاحات النافذة في Compose
- اعتبارات أخرى