يوفّر Compose ComposeTestRule
الذي يتيح لك كتابة اختبارات للرسوم المتحرّكة
بطريقة محدّدة مع التحكّم الكامل في ساعة الاختبار. يتيح لك ذلك
التحقّق من قيم الرسوم المتحركة الوسيطة. بالإضافة إلى ذلك، يمكن إجراء الاختبار بشكل أسرع
من المدة الفعلية للحركة.
يعرض ComposeTestRule
ساعة الاختبار على النحو التالي: mainClock
. يمكنك ضبط القيمة
autoAdvance
على false للتحكّم في الساعة في رمز الاختبار. بعد
بدء العرض المتحرك الذي تريد اختباره، يمكن تحريك الساعة إلى الأمام باستخدام
advanceTimeBy
.
تجدر الإشارة هنا إلى أنّ advanceTimeBy
لا يحرّك الساعة
بالضبط حسب المدة المحدّدة. بدلاً من ذلك، يتم تقريبها إلى أقرب مدة تُمثّل
مُضاعِفًا لمدة اللقطة.
@get:Rule val rule = createComposeRule() @Test fun testAnimationWithClock() { // Pause animations rule.mainClock.autoAdvance = false var enabled by mutableStateOf(false) rule.setContent { val color by animateColorAsState( targetValue = if (enabled) Color.Red else Color.Green, animationSpec = tween(durationMillis = 250) ) Box(Modifier.size(64.dp).background(color)) } // Initiate the animation. enabled = true // Let the animation proceed. rule.mainClock.advanceTimeBy(50L) // Compare the result with the image showing the expected result. // `assertAgainGolden` needs to be implemented in your code. rule.onRoot().captureToImage().assertAgainstGolden() }
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
- اختبار تنسيق ميزة "الإنشاء"
- اعتبارات أخرى
- تخصيص الصور المتحركة {:#customize-animations}