ทักษะ Android
ดูใน GitHubการตั้งค่าการทดสอบ Android
android skills add testing-setupทดสอบ UI ของแอปเพื่อยืนยันว่าลักษณะการทำงานของโค้ด Compose ถูกต้อง ซึ่งจะช่วยให้คุณพบข้อผิดพลาดได้ตั้งแต่เนิ่นๆ และปรับปรุงคุณภาพของแอปได้
Compose มีชุด API สำหรับการทดสอบเพื่อค้นหาองค์ประกอบ ยืนยันแอตทริบิวต์ และดำเนินการของผู้ใช้ นอกจากนี้ API ยังมีฟีเจอร์ขั้นสูง เช่น การจัดการเวลา ใช้ API เหล่านี้เพื่อสร้างการทดสอบที่แข็งแกร่งซึ่งจะยืนยัน ลักษณะการทำงานของแอป
ยอดดู
หากคุณใช้ View แทน Compose โปรดดูส่วนทดสอบแอปใน Android ทั่วไป
โดยเฉพาะอย่างยิ่ง คุณควรเริ่มจากคำแนะนำการทดสอบ UI อัตโนมัติ โดยจะอธิบายวิธีทำให้การทดสอบที่ทำงานในอุปกรณ์เป็นแบบอัตโนมัติ รวมถึงเมื่อใช้ มุมมอง
หัวข้อสำคัญ
แนวคิดสำคัญบางส่วนสำหรับการทดสอบโค้ด Compose มีดังนี้
- Semantics: Semantics ช่วยให้ UI มีความหมาย ซึ่งช่วยให้การทดสอบ โต้ตอบกับองค์ประกอบที่เฉพาะเจาะจงได้
- API การทดสอบ: API การทดสอบช่วยให้คุณค้นหาองค์ประกอบ ยืนยันแอตทริบิวต์ และดำเนินการของผู้ใช้ได้
- การซิงโครไนซ์: การซิงโครไนซ์จะตรวจสอบว่าการทดสอบรอให้ UI อยู่ในสถานะว่างก่อนที่จะดำเนินการหรือทำการยืนยัน
- ความสามารถในการทำงานร่วมกัน: ความสามารถในการทำงานร่วมกันช่วยให้การทดสอบทำงานได้กับทั้งองค์ประกอบ Compose และองค์ประกอบที่อิงตาม View ในแอปเดียวกัน
ชีตโกงสำหรับการทดสอบ
ดูชีตสรุปการทดสอบเพื่อดูภาพรวมของหัวข้อสำคัญทั้งหมดที่คุณควร เรียนรู้เกี่ยวกับการทดสอบใน Compose
ตั้งค่า
ตั้งค่าแอปเพื่อให้คุณทดสอบโค้ด Compose ได้
ก่อนอื่น ให้เพิ่มทรัพยากร Dependency ต่อไปนี้ลงในไฟล์ build.gradle ของโมดูล
ที่มีการทดสอบ UI
// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")
โมดูลนี้มี ComposeTestRule และการติดตั้งใช้งานสำหรับ Android
ที่ชื่อ AndroidComposeTestRule คุณสามารถตั้งค่าการเขียน
เนื้อหาหรือเข้าถึงกิจกรรมผ่านกฎนี้ได้ คุณสร้างกฎโดยใช้ฟังก์ชัน Factory
ไม่ว่าจะเป็น createComposeRule หรือหากต้องการเข้าถึงกิจกรรม
createAndroidComposeRule การทดสอบ UI ทั่วไปสำหรับ Compose มีลักษณะดังนี้
// file: app/src/androidTest/java/com/package/MyComposeTest.kt
class MyComposeTest {
@get:Rule val composeTestRule = createComposeRule()
// use createAndroidComposeRule<YourActivity>() if you need access to
// an activity
@Test
fun myTest() {
// Start the app
composeTestRule.setContent {
MyAppTheme {
MainScreen(uiState = fakeUiState, /*...*/)
}
}
composeTestRule.onNodeWithText("Continue").performClick()
composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
}
}
แหล่งข้อมูลเพิ่มเติม
- ทดสอบแอปใน Android: หน้า Landing Page หลักของการทดสอบ Android จะให้มุมมองที่กว้างขึ้นเกี่ยวกับพื้นฐานและเทคนิคการทดสอบ
- หลักพื้นฐานของการทดสอบ: ดูข้อมูลเพิ่มเติม เกี่ยวกับแนวคิดหลักเบื้องหลังการทดสอบแอป Android
- การทดสอบในเครื่อง: คุณสามารถเรียกใช้การทดสอบบางอย่าง ในเครื่องบนเวิร์กสเตชันของคุณเองได้
- การทดสอบที่วัดคุม: คุณควรเรียกใช้การทดสอบที่วัดคุมด้วย กล่าวคือ การทดสอบที่ทำงานโดยตรงในอุปกรณ์
- การรวมอย่างต่อเนื่อง: การรวมอย่างต่อเนื่องช่วยให้คุณผสานรวมการทดสอบเข้ากับไปป์ไลน์การติดตั้งใช้งานได้
- ทดสอบขนาดหน้าจอต่างๆ: เนื่องจากผู้ใช้มีอุปกรณ์ให้เลือกมากมาย คุณจึงควรทดสอบขนาดหน้าจอต่างๆ
- Espresso: แม้ว่า Espresso จะออกแบบมาสำหรับ UI ที่อิงตาม View แต่ความรู้เกี่ยวกับ Espresso ก็ยังเป็นประโยชน์สำหรับบางแง่มุมของการทดสอบ Compose
Codelab
ดูข้อมูลเพิ่มเติมได้ที่ Codelab การทดสอบ Jetpack Compose
ตัวอย่าง
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- ความหมายในฟีเจอร์ช่วยเขียน
- ส่วนที่เว้นไว้ในหน้าต่างใน Compose
- ข้อควรพิจารณาอื่นๆ