اختبار تنسيق Compose

اختبِر واجهة مستخدم تطبيقك للتأكّد من أنّ سلوك رمز Compose هو صحيح. يتيح لك ذلك رصد الأخطاء في وقت مبكر وتحسين جودة تطبيقك.

توفّر Compose مجموعة من واجهات برمجة التطبيقات لاختبار العثور على العناصر والتحقّق من سماتها وتنفيذ إجراءات المستخدم. تتضمّن واجهات برمجة التطبيقات أيضًا ميزات متقدّمة، مثل التحكّم في الوقت. استخدم واجهات برمجة التطبيقات هذه لإنشاء اختبارات قوية تتحقق من سلوك تطبيقك.

المشاهدات

إذا كنت تستخدم الملفات الشخصية بدلاً من ميزة "إنشاء"، يُرجى الاطّلاع على القسم العام اختبار التطبيقات على Android.

على وجه الخصوص، يمكنك البدء بدليل اختبارات واجهة المستخدم المبرمَجة. ويوضّح هذا القسم كيفية برمجة الاختبارات التي يتم إجراؤها على الجهاز، بما في ذلك عند استخدام طرق العرض.

المفاهيم الرئيسية

في ما يلي بعض المفاهيم الأساسية لاختبار رمز Compose.

  • الدلالات: تتفاعل اختبارات الإنشاء مع واجهة المستخدم باستخدام الدلالات، التي تمنح معنى لقطع واجهة المستخدم ويتم إنشاؤها إلى جانب التسلسل الهرمي لواجهة المستخدم.
  • اختبار واجهات برمجة التطبيقات: توفّر أداة Compose واجهات برمجة تطبيقات لاختبار العثور على العناصر، وتأكيد حالتها وخصائصها، وتنفيذ الإجراءات بهدف محاكاة تفاعلات المستخدمين.
  • المزامنة: تتم مزامنة اختبارات Compose تلقائيًا مع واجهة المستخدم، لانتظار عدم نشاطها قبل إجراء تأكيدات أو تنفيذ إجراءات.
  • إمكانية التشغيل التفاعلي: في التطبيقات المختلطة، يمكن للاختبارات التفاعل بسلاسة مع كل من العناصر المستندة إلى Compose وView، والدمج مع إطارات عمل اختبار أخرى.

بطاقة معلومات اختبارية

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

// 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.

نماذج