Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
461 of 502 menu
◀ ▶

Функция createComposeRule

Функция createComposeRule возвращает ComposeContentTestRule для instrumented-тестов Compose. Activity не поднимается: дерево рисуют через setContent внутри метода с аннотацией Test. Правило подключают полем с @get:Rule, узлы ищут через onNodeWithText, проверки делают у SemanticsNodeInteraction.

Синтаксис

@get:Rule val composeTestRule = createComposeRule()

Пример

Давайте проверим, что Text с abcde виден:

import androidx.compose.material3.Text import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import org.junit.Rule import org.junit.Test class NoteComposeTest { @get:Rule val composeTestRule = createComposeRule() @Test fun textIsShown() { composeTestRule.setContent { Text(text = "abcde") } composeTestRule.onNodeWithText("abcde").assertIsDisplayed() } }

Тест проходит: на дереве найден узел с текстом "abcde" и он отображается.

Пример

Давайте убедимся, что второй текст тоже на месте:

import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import org.junit.Rule import org.junit.Test class TwoLinesComposeTest { @get:Rule val composeTestRule = createComposeRule() @Test fun bothTextsAreShown() { composeTestRule.setContent { Column { Text(text = "abcde") Text(text = "12345") } } composeTestRule.onNodeWithText("12345").assertIsDisplayed() } }

Тест проходит: узел с "12345" найден и помечен как видимый.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить