Compose 레이아웃 테스트

앱의 UI를 테스트하여 Compose 코드의 동작이 다음과 같은지 확인합니다. 맞습니다. 이를 통해 오류를 조기에 발견하고 앱 품질을 개선할 수 있습니다.

Compose는 요소를 찾고 요소를 확인하는 일련의 테스트 API를 제공합니다. 속성을 사용하고, 사용자 작업을 수행할 수 있습니다. API에는 고급 기능도 포함되어 있습니다. 예를 들면 시간 조작 등이 있습니다 이러한 API를 사용하여 검증하는 강력한 테스트를 만드세요. 확인할 수 있습니다.

Compose 대신 뷰를 사용하는 경우 일반적인 앱 테스트 Android 섹션의 단계를 따릅니다.

특히 UI 테스트 자동화 가이드부터 시작하는 것이 좋습니다. 그것은 는 할 수 있습니다.

주요 개념

다음은 Compose 코드를 테스트하기 위한 몇 가지 주요 개념입니다.

  • 시맨틱: Compose 테스트는 시맨틱을 사용하여 UI와 상호작용합니다. 이는 UI의 일부에 의미를 부여하고 UI와 함께 생성됩니다. 계층 구조로 구성됩니다
  • 테스트 API: Compose는 요소를 찾기 위한 테스트 API를 제공합니다. 상태와 속성에 대한 어설션을 만들고 사용자 상호작용을 시뮬레이션할 수 있습니다.
  • 동기화: 기본적으로 Compose는 자동으로 테스트를 실행합니다. UI와 동기화되며 어설션을 만들기 전에 유휴 상태가 될 때까지 기다립니다. 또는 작업을 수행할 수 있습니다.
  • 상호 운용성: 하이브리드 앱에서는 테스트가 원활하게 상호작용할 수 있습니다. Compose 및 뷰 기반 요소를 모두 사용하고 다른 테스트와 통합 살펴봤습니다

테스트 요약본

필요한 모든 주요 주제에 관한 개요는 테스트 요약본을 참고하세요. Compose의 테스트에 관해 알아보세요.

설정

Compose 코드를 테스트할 수 있도록 앱을 설정합니다.

먼저, UI 테스트가 포함된 모듈의 build.gradle 파일에 다음 종속 항목을 추가합니다.

// 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을 호출했습니다. 이 규칙을 통해 액세스할 수 있습니다. 팩토리 함수를 사용하여 규칙을 구성합니다. createComposeRule 또는 활동에 액세스해야 하는 경우 createAndroidComposeRule Compose의 일반적인 UI 테스트는 다음과 같습니다.

// 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에서 앱 테스트: 기본 Android 테스트 테스트의 기본사항과 기술을 보다 폭넓게 파악할 수 있습니다.
  • 테스트 기본 요소: 자세히 알아보기 Android 앱 테스트의 핵심 개념을 배웠습니다.
  • 로컬 테스트: 일부 테스트를 실행할 수 있습니다. 실행할 수 있습니다
  • 계측 테스트: 우수함 연습을 해야 합니다 즉, Cloud Build를 사용해 해야 합니다.
  • 지속적 통합: 지속적 통합을 통해 테스트를 배포에 통합할 수 있음 살펴봤습니다
  • 다양한 화면 크기 테스트: 사용자에게 제공할 수 있는 여러 기기이므로 다양한 화면용으로 테스트해야 합니다. 있습니다.
  • Espresso: 뷰 기반 UI, Espresso 지식은 Compose의 일부 측면에 여전히 유용할 수 있음 있습니다.

Codelab

자세한 내용은 Jetpack Compose 테스트 Codelab을 참고하세요.

샘플