تتيح لك واجهة برمجة التطبيقات لاختبار وحدات Glance اختبار رمز Glance بدون تضخيم المشاهدات
أو الحاجة إلى أداة تشغيل واجهة مستخدم آلي. على سبيل المثال، تتيح لك واجهة برمجة التطبيقات لاختبار الوحدة التحقّق من
الشروط، مثل ما إذا كانت العناصر في قائمة أو ما إذا تم وضع علامة في المربّعات، باستخدام المطابقات مثل 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 يستند إلى آلة Java الافتراضية (JVM)، مثل Roboletric، لتوفير السياق.
إذا كانت الدالة القابلة للتجميع تحصل على LocalSize
، اضبط الحجم المقصود
للاختبار قبل تقديم عنصر قابل للتجميع في الاختبار. الحجم التلقائي هو
349.dp x 455.dp، وهو ما يعادل تطبيق مصغّر أبعاده 5×4 يظهر على جهاز Pixel 4
في الوضع العمودي.
- إذا كان تطبيقك المصغر يستخدم
sizeMode == Single
، يمكنك ضبطه علىminWidth
وminHeight
في ملفinfo.xml
الخاص بالتطبيق المصغّر. - إذا كان تطبيقك المصغر يستخدم
sizeMode == Exact
، يمكنك تحديد الأحجام التي تريد اختبارها بطريقة مشابهة لطريقة تحديد حجم التطبيق المصغر وتحديد أحجام الشاشة الأفقية والشاشة العمودية التي قد يظهر عليها التطبيق المصغر واختباره على هذه الأحجام. - إذا كان تطبيقك المصغّر يستخدم
sizeMode == Responsive
، يمكنك ضبط هذا الخيار على أحد الأحجام من القائمة التي تقدّمها عند تحديدsizeMode
.
المدة التلقائية لانتهاء مهلة الاختبار هي ثانية واحدة، ولكن يمكنك تمرير مدّة
مخصّصة كوسيطة إلى طريقة runGlanceAppWidgetUnitTest
إذا كانت بنية
الاختبار تفرض مهلة مختلفة.
لمزيد من المعلومات وعينات الرموز البرمجية، اطّلِع على المستندات المرجعية لمحاولة
runGlanceAppWidgetUnitTest
.