تتيح لك واجهة برمجة التطبيقات لاختبار وحدات Glance اختبار رمز Glance بدون تضخيم المشاهدات
أو الحاجة إلى أداة التشغيل الآلي لواجهة المستخدم. على سبيل المثال، تتيح لك 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 يستند إلى آلة 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
.