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. Nhờ đó, bạn có thể 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 kiểm thử hiệu quả 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 khung hiển thị thay vì Compose, hãy xem phần chung Kiểm thử ứng dụng trên Android.

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. Tài liệu này trình bày cách bạn có thể tự động hoá các chương trình kiểm thử chạy trên thiết bị, bao gồm 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:

  • Ngữ nghĩa: Ngữ nghĩa cung cấp ý nghĩa cho giao diện người dùng, cho phép các kiểm thử tương tác với các thành phần cụ thể.
  • API kiểm thử: API kiểm thử cho phép bạn 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.
  • Đồng bộ hoá: Quá trình đồng bộ hoá xác minh rằng các chương trình kiểm thử sẽ chờ giao diện người dùng ở trạng thái rảnh trước khi thực hiện hành động hoặc đưa ra câu nhận định.
  • Khả năng tương tác: Khả năng tương tác cho phép các chương trình kiểm thử hoạt động với cả thành phần Compose và thành phần dựa trên Khung hiển thị trong cùng một ứng dụng.

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

Xem bản tóm tắt về kiểm thử để biết thông tin tổng quan về tất cả chủ đề chính mà bạn nên tìm hiểu về 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 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 hàm khởi tạo, createComposeRule hoặc createAndroidComposeRule nếu 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

  • Kiểm thử ứng dụng trên Android: Trang đích chính về kiểm thử trên Android cung cấp thông tin tổng quan về các nguyên tắc cơ bản và kỹ thuật kiểm thử.
  • Nguyên tắc cơ bản về kiểm thử: Tìm hiểu thêm về các khái niệm cốt lõi đằng sau việc kiểm thử một ứng dụng Android.
  • Kiểm thử cục bộ: Bạn có thể chạy một số bài kiểm thử cục bộ trên máy trạm của riêng mình.
  • Kiểm thử đo lường: Bạn cũng nên chạy kiểm thử đo lường. Tức là các kiểm thử chạy trực tiếp trên thiết bị.
  • Tích hợp liên tục: Tính năng tích hợp liên tục cho phép bạn tích hợp các thử nghiệm vào quy trình triển khai.
  • Kiểm thử nhiều kích thước màn hình: Vì người dùng có thể sử dụng nhiều thiết bị, nên bạn cần kiểm thử đối với nhiều kích thước màn hình.
  • Espresso: Mặc dù được thiết kế cho giao diện người dùng dựa trên Khung hiển thị, nhưng kiến thức về Espresso vẫn có thể hữu ích cho một số khía cạnh của hoạt động kiểm thử trong Compose.

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