اختبار الوحدات من خلال ميزة "نظرة سريعة"

تتيح لك واجهة برمجة التطبيقات لاختبار الوحدات في ميزة "نظرة سريعة" اختبار رمز "نظرة سريعة" بدون تضخيم عدد المشاهدات أو الحاجة إلى أداة تلقائية لواجهة المستخدم. على سبيل المثال، تتيح لك unit test API التحقّق من الشروط، مثل ما إذا كانت العناصر في قائمة أو ما إذا كانت المربعات تم وضع علامة فيه، باستخدام عناصر مطابقة مثل hasContentDescriptionEqualTo أو isChecked.

وتتميز واجهة برمجة التطبيقات هذه بخفة حجمها وتتطلب إعدادًا أقل، حتى تتمكن من إجراء الاختبار من خلال وتطويرها عندما تقوم بتطوير أجزاء فردية من أداتك وتنظيمها لتحسين إعادة استخدام الرمز البرمجي

ضبط إعدادات الجهاز

يتم عرض التبعيات المطلوبة لاستخدام مكتبة اختبار الوحدات في في ما يلي الأمثلة:

// Other Glance and Compose runtime dependencies.
...
testImplementation 'androidx.glance:glance-testing:1.1.0'
testImplementation 'androidx.glance:glance-AppWidget-testing:1.1.0'
testImplementation 'org.robolectric:robolectric:4.11.1'
...
// You may include additional dependencies, such as Robolectric, if your test
// needs to set a LocalContext.

بنية الاختبار

تنظيم الدوال القابلة للإنشاء خارج فئة GlanceAppWidget لتفعيلها إعادة استخدام التعليمات البرمجية واختبار الوحدة. تقليل تعقيد الوحدات قيد الاختبار قدر الإمكان.

class MyGlanceComposableTest {
    @Test
    fun myNewsItemComposable_largeSize_hasAuthorAsSubtitle() = runGlanceAppWidgetUnitTest {
        // Prepare inputs and state
        setAppWidgetSize(100.dp, 100.dp)

        // Set the composable under test
        provideComposable {
            MyNewsItemComposable(TEST_NEWS_ITEM)
        }

        // Perform assertions
        onNode(hasTestTag("subTitle"))
            .assertHasText(TEST_NEWS_ITEM.authorName)
    }
}

ضبط سياق الاختبار وحجمه

إذا كانت الدالة القابلة للإنشاء تقرأ السياق باستخدام LocalContext.current() ، يجب تعيين سياق باستخدام طريقة LocalContext.current(). وبخلاف ذلك، تكون هذه الخطوة اختيارية.

يمكنك استخدام أي إطار عمل لاختبار وحدة Android مستند إلى JVM، مثل Roboletric، من أجل توفر السياق.

إذا وصلت الدالة القابلة للإنشاء إلى LocalSize، اضبط الحجم المطلوب. للاختبار قبل توفير مادة قابلة للإنشاء في الاختبار. الحجم الافتراضي هو بحجم 349.dp × 455.dp، أي تطبيق مصغّر بتنسيق 5x4 يظهر على جهاز Pixel 4 في الوضع الرأسي.

  • إذا كان تطبيقك المصغّر يستخدم sizeMode == Single، يمكنك ضبطه على minWidth وminHeight في ملف info.xml الخاص بالأداة.
  • إذا كان تطبيقك المصغّر يستخدم "sizeMode == Exact"، يمكنك تحديد الأحجام يمكنك اختباره بطريقة مشابهة لتحديد حجم تطبيقك المصغّر تحديد الأحجام الأفقية والعمودية التي قد يظهر عليها التطبيق المصغّر واختبارها لهم.
  • إذا كان تطبيقك المصغّر يستخدم sizeMode == Responsive، يمكنك ضبطه على إحدى الأحجام من القائمة التي تقدّمها عند تحديد sizeMode.

تبلغ المدة التلقائية لمهلة الاختبار ثانية واحدة، ولكن يمكنك ضبط مهلة مخصَّصة. المدة كوسيطة إلى طريقة runGlanceAppWidgetUnitTest إذا كان الاختبار البنية الأساسية تفرض مهلة مختلفة.

لمزيد من المعلومات وعينات التعليمات البرمجية، راجع الوثائق المرجعية لـ runGlanceAppWidgetUnitTest