Kiểm thử bố cục Compose

Kiểm thử giao diện người dùng của ứng dụng để xác minh rằng hành vi của mã Compose là chính xác. Việc này giúp bạn phát hiện lỗi sớm và cải thiện chất lượng ứng dụng.

Compose cung cấp một bộ API kiểm thử để tìm các thành phần, xác minh thuộc tính của thành phần đó và thực hiện các hành động của người dùng. Các API này cũng bao gồm các tính năng nâng cao chẳng hạn như thao tác thời gian. Hãy sử dụng các API này để tạo các quy trình kiểm thử mạnh mẽ nhằm xác minh hành vi của ứng dụng.

Số lượt xem

Nếu bạn đang làm việc với các khung hiển thị thay vì Compose, hãy xem phần Kiểm thử ứng dụng trên Android nói chung.

Cụ thể, bạn nên bắt đầu bằng hướng dẫn Tự động hoá quy trình kiểm thử giao diện người dùng. Hướng dẫn này trình bày cách bạn có thể tự động hoá các quy trình kiểm thử chạy trên thiết bị, kể cả khi sử dụng khung hiển thị.

Khái niệm chính

Sau đây là một số khái niệm chính để kiểm thử mã Compose:

Bản tóm tắt về kiểm thử

Hãy xem bản tóm tắt về kiểm thử để biết thông tin tổng quan về tất cả các chủ đề chính mà bạn nên tìm hiểu về việc kiểm thử trong Compose.

Thiết lập

Thiết lập ứng dụng để kiểm thử mã Compose.

Trước tiên, hãy thêm các phần phụ thuộc sau vào tệp build.gradle của mô-đun chứa các quy trình kiểm thử giao diện người dùng của bạn:

// 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")

Mô-đun này bao gồm một ComposeTestRule và phương thức triển khai cho Android có tên là AndroidComposeTestRule. Thông qua quy tắc này, bạn có thể thiết lập nội dung Compose hoặc truy cập hoạt động. Bạn tạo các quy tắc bằng cách sử dụng các hàm nhà máy, createComposeRule hoặc createAndroidComposeRule (nếu bạn cần truy cập vào một hoạt động). Quy trình kiểm thử giao diện người dùng điển hình của Compose có dạng như sau:

// 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()
    }
}

Tài nguyên khác

Lớp học lập trình

Để tìm hiểu thêm, hãy thử tham gia Lớp học lập trình Kiểm thử trong Jetpack Compose.

Mẫu