اختبِر واجهة المستخدم لتطبيقك للتحقق من صحة سلوك رمز 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
. ومن خلال هذه القاعدة، يمكنك تعيين إنشاء
محتوى أو الوصول إلى النشاط. يمكنك إنشاء القواعد باستخدام وظائف المصنع،
إما 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 مخصّص لواجهات مستنِدة إلى الاطّلاع، يمكن أن تكون المعرفة به مفيدة لبعض جوانب اختبار ميزة "الإنشاء".
الدرس التطبيقي حول الترميز
لمزيد من المعلومات، يمكنك تجربة الدليل التعليمي لاختبار Jetpack Compose.
نماذج
أفلام مُقترَحة لك
- ملاحظة: يظهر نص الرابط عند إيقاف JavaScript
- الدلالات في ميزة "الإنشاء"
- أجزاء النافذة المضمّنة في ميزة "الإنشاء"
- اعتبارات أخرى