Spec-Zone.ru › Kotlin 2

Тестирование пользовательского интерфейса Compose Multiplatform с помощью JUnit

Compose Multiplatform для настольных компьютеров предоставляет API для тестирования на основе JUnit и API тестирования Jetpack Compose. Подробнее о реализации см. в руководстве Тестирование макета Compose в документации Jetpack Compose.

См. статью Тестирование пользовательского интерфейса Compose Multiplatform, посвященную возможностям тестирования интерфейса, доступным на всех поддерживаемых платформах.

Чтобы посмотреть, как работают тесты на основе JUnit, начнем с проекта, созданного с помощью мастера Kotlin Multiplatform. Если вы добавляете тесты в существующий проект, возможно, потребуется заменить shared в путях и командах на имя тестируемого модуля.

Создайте исходный набор для тестов и добавьте необходимые зависимости:

  1. Создайте каталог для тестов: shared/src/desktopTest/kotlin.

  2. Добавьте следующие зависимости в файл shared/build.gradle.kts:

    kotlin { 
        //...
        sourceSets { 
            //...
            val desktopTest by getting { 
                dependencies {
                    implementation(compose.desktop.uiTestJUnit4)
                    implementation(compose.desktop.currentOs)
                }
            }
        }
    }
    
  3. Создайте файл теста с именем ExampleTest.kt и скопируйте в него следующий код:

    import androidx.compose.material.*
    import androidx.compose.runtime.*
    import androidx.compose.ui.Modifier
    import androidx.compose.ui.test.*
    import androidx.compose.ui.platform.testTag
    import androidx.compose.ui.test.junit4.v2.createComposeRule
    import org.junit.Rule
    import org.junit.Test
    
    class ExampleTest {
        @get:Rule
        val rule = createComposeRule()
    
        @Test
        fun myTest(){
            // Declares a mock UI to demonstrate API calls
            //
            // Replace with your own declarations to test the code in your project
            rule.setContent {
                var text by remember { mutableStateOf("Hello") }
    
                Text(
                    text = text,
                    modifier = Modifier.testTag("text")
                )
                Button(
                    onClick = { text = "Compose" },
                    modifier = Modifier.testTag("button")
                ) {
                    Text("Click me")
                }
            }
    
            // Tests the declared UI with assertions and actions of the JUnit-based testing API
            rule.onNodeWithTag("text").assertTextEquals("Hello")
            rule.onNodeWithTag("button").performClick()
            rule.onNodeWithTag("text").assertTextEquals("Compose")
        }
    }
    
  4. Чтобы запустить тест, нажмите значок запуска на поле слева от функции myTest() или выполните в терминале следующую команду:

    ./gradlew desktopTest
    

Что дальше?

  • Узнайте, как создавать и запускать мультиплатформенные тесты.

  • Общий обзор тестирования на основе JUnit в проекте Kotlin см. в руководстве Тестирование кода с помощью JUnit в JVM.

15 мая 2026 г.
Поддержка специальных возможностей на настольных компьютерахВзаимодействие со Swing

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/compose-desktop-ui-testing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API