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 hành vi của mã Compose chính xác. Việc này giúp bạn sớm phát hiện lỗi 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 phần tử, xác minh phần tử và thực hiện thao tác của người dùng. API này cũng bao gồm các tính năng nâng cao chẳng hạn như thao túng thời gian. Hãy dùng các API này để tạo các chương trình kiểm thử mạnh mẽ giúp 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.

Đặc biệt, bạn nên bắt đầu tham khảo hướng dẫn Tự động hoá quy trình kiểm thử giao diện người dùng. Nó trình bày cách bạn có thể tự động hoá các thử nghiệm chạy trên thiết bị, bao gồm cả khi sử dụng lượt xem.

Khái niệm chính

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

  • Ngữ nghĩa: Kiểm thử Compose tương tác với giao diện người dùng bằng cách sử dụng ngữ nghĩa, mang ý nghĩa cho các phần trên giao diện người dùng và được tạo cùng với giao diện người dùng thứ bậc.
  • API kiểm thử: Compose cung cấp các API kiểm thử để tìm kiếm các phần tử, đưa ra khẳng định về trạng thái và thuộc tính của chúng, đồng thời thực hiện hành động để mô phỏng các hoạt động tương tác của người dùng.
  • Đồng bộ hoá: Theo mặc định, Compose sẽ tự động kiểm thử đồng bộ hoá với giao diện người dùng, chờ cho nó ở trạng thái rảnh trước khi đưa ra xác nhận hoặc thực hiện hành động.
  • Khả năng tương tác: Trong các ứng dụng kết hợp, các bài kiểm thử có thể tương tác một cách liền mạch với cả thành phần Compose lẫn thành phần dựa trên Khung hiển thị, đồng thời tích hợp với các hoạt động kiểm thử khác các khung khác nhau.

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 cần hãy tìm hiểu về quy trình kiểm thử trong Compose.

Thiết lập

Thiết lập ứng dụng để có thể 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à một hoạt động 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 Compose nội dung hoặc truy cập hoạt động. Bạn xây dựng các quy tắc bằng cách sử dụng các hàm nhà máy, createComposeRule hoặc nếu cần quyền truy cập vào một hoạt động, createAndroidComposeRule. Một quy trình kiểm thử giao diện người dùng điển hình cho 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

  • Kiểm thử ứng dụng trên Android: Kiểm thử chính trên Android trang đích cung cấp cái nhìn rộng hơn về các nguyên tắc và kỹ thuật thử nghiệm.
  • Nguyên tắc cơ bản về việc kiểm thử: Tìm hiểu thêm về các khái niệm chính của việc kiểm thử ứng dụng Android.
  • Kiểm thử cục bộ: Bạn có thể chạy một số kiểm thử trên máy trạm của riêng bạn.
  • Kiểm thử đo lường: Kết quả này phù hợp để chạy cả các kiểm thử đo lường. Tức là các thử nghiệm chạy trực tiếp trên thiết bị.
  • Tích hợp liên tục: Khả năng tích hợp liên tục giúp bạn tích hợp các bài kiểm thử vào hoạt động triển khai quy trình.
  • Thử nghiệm nhiều kích thước màn hình: Bằng một số thiết bị có sẵn cho người dùng, bạn nên thử nghiệm các màn hình khác nhau kích thước.
  • Espresso: Mặc dù dành cho phương pháp dựa trên Khung hiển thị Giao diện người dùng, kiến thức về Espresso vẫn có thể hữu ích cho một số khía cạnh của Compose kiểm thử.

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

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

Mẫu