คอมโพซเสนอ 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}