مهارات Android
العرض على GitHubإعداد اختبار تطبيقات Android
android skills add testing-setupاختبِر واجهة مستخدم تطبيقك للتأكّد من أنّ سلوك رمز 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 مُصمَّمة لواجهات المستخدم المستندة إلى العرض، إلا أنّ معرفة أدوات Espresso يمكن أن تكون مفيدة في بعض جوانب اختبار Compose.
درس تطبيقي حول الترميز
لمزيد من المعلومات، يمكنك تجربة الدرس التطبيقي حول الترميز لاختبار Jetpack Compose.
نماذج
التطبيقات المقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما يكون JavaScript غير مفعَّل
- الدلالات في Compose
- مجموعات النوافذ في Compose
- اعتبارات أخرى