Compose จะผสานรวมกับกรอบการทดสอบทั่วไป
ความสามารถในการทำงานร่วมกับ Espresso
ในแอปแบบผสม คุณสามารถค้นหาคอมโพเนนต์ Compose ภายในลำดับชั้นการแสดงผลและ
มุมมองภายใน Compose Composable (ผ่าน AndroidView
ที่ Composable)
คุณไม่จำเป็นต้องมีขั้นตอนพิเศษเพื่อจับคู่ประเภททั้งสอง คุณจับคู่การดูกับ
เอลิเมนต์ onView
ของ Espresso และ Compose ด้วย ComposeTestRule
@Test
fun androidViewInteropTest() {
// Check the initial state of a TextView that depends on a Compose state.
Espresso.onView(withText("Hello Views")).check(matches(isDisplayed()))
// Click on the Compose button that changes the state.
composeTestRule.onNodeWithText("Click here").performClick()
// Check the new value.
Espresso.onView(withText("Hello Compose")).check(matches(isDisplayed()))
}
ความสามารถในการทำงานร่วมกับ UiAutomator
โดยค่าเริ่มต้น Composable จะสามารถเข้าถึงได้จาก UiAutomator โดย
ข้อบ่งชี้ที่สะดวก (ข้อความที่แสดง คำอธิบายเนื้อหา ฯลฯ) หากคุณต้องการ
หากต้องการเข้าถึง Composable ที่ใช้ Modifier.testTag
คุณต้องเปิดใช้
คุณสมบัติเชิงความหมาย testTagsAsResourceId
สำหรับ Composable ที่เฉพาะเจาะจง
แผนผังย่อย การเปิดใช้ลักษณะการทำงานนี้จะมีประโยชน์ต่อ Composable ที่ไม่มีส่วนใด
แฮนเดิลอื่นๆ ที่ไม่ซ้ำกัน เช่น Composable ที่เลื่อนได้ (เช่น LazyColumn
)
เปิดใช้พร็อพเพอร์ตี้เชิงความหมายเพียงครั้งเดียวในลำดับชั้น Composable ขั้นสูงเพื่อ
ตรวจสอบว่า Composable ที่ซ้อนกันที่มี Modifier.testTag
สามารถเข้าถึงได้จาก
UiAutomator
Scaffold(
// Enables for all composables in the hierarchy.
modifier = Modifier.semantics {
testTagsAsResourceId = true
}
){
// Modifier.testTag is accessible from UiAutomator for composables nested here.
LazyColumn(
modifier = Modifier.testTag("myLazyColumn")
){
// Content
}
}
คำสั่ง Composable กับ Modifier.testTag(tag)
สามารถเข้าถึงได้ด้วยการใช้งาน
ของ By.res(resourceName)
โดยใช้ tag
เดียวกันกับ resourceName
val device = UiDevice.getInstance(getInstrumentation())
val lazyColumn: UiObject2 = device.findObject(By.res("myLazyColumn"))
// Some interaction with the lazyColumn.
แหล่งข้อมูลเพิ่มเติม
- ทดสอบแอปใน Android: การทดสอบหลักของ Android หน้า Landing Page ให้มุมมองที่กว้างขึ้นเกี่ยวกับพื้นฐานและเทคนิคของการทดสอบ
- พื้นฐานการทดสอบ: ดูข้อมูลเพิ่มเติม เกี่ยวกับแนวคิดหลักเบื้องหลังการทดสอบแอป Android
- การทดสอบในเครื่อง: คุณทำการทดสอบได้บางรายการ ภายในเวิร์กสเตชันของคุณเอง
- การทดสอบแบบมีเครื่องวัด: ดี เพื่อทำการทดสอบแบบมีเครื่องวัดด้วย กล่าวคือ การทดสอบที่ทำงานโดยตรง ในอุปกรณ์
- การผสานรวมอย่างต่อเนื่อง: การผสานรวมอย่างต่อเนื่องช่วยให้คุณผสานรวมการทดสอบเข้ากับการติดตั้งใช้งานได้ ไปป์ไลน์
- ทดสอบหน้าจอขนาดต่างๆ: ด้วย มีอุปกรณ์มากมายที่ผู้ใช้มี คุณควรทดสอบสำหรับหน้าจอแบบต่างๆ ขนาดต่างๆ
- Espresso: เหมาะสำหรับข้อมูลในมุมมอง UI, ความรู้เกี่ยวกับ Espresso ยังมีประโยชน์สำหรับ Compose ในบางแง่มุม การทดสอบ