Compose มี ComposeTestRule
ที่ให้คุณเขียนการทดสอบสำหรับภาพเคลื่อนไหว
ในแบบที่กำหนดและควบคุมนาฬิกาทดสอบได้อย่างเต็มที่ ซึ่งช่วยให้คุณ
เพื่อยืนยันค่าของภาพเคลื่อนไหวช่วงกลาง นอกจากนี้ยังทำการทดสอบได้เร็วขึ้น
ระยะเวลาจริงของภาพเคลื่อนไหว
ComposeTestRule
แสดงนาฬิกาทดสอบเป็น mainClock
คุณสามารถตั้งค่า
พร็อพเพอร์ตี้ autoAdvance
เป็น "เท็จ" เพื่อควบคุมนาฬิกาในโค้ดทดสอบ หลัง
เมื่อเริ่มเล่นภาพเคลื่อนไหวที่ต้องการทดสอบ นาฬิกาก็จะเลื่อนไปข้างหน้าได้
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 ปิดอยู่
- การทดสอบเลย์เอาต์ของ Compose
- ข้อควรพิจารณาอื่นๆ
- ปรับแต่งภาพเคลื่อนไหว {:#customize-animations}