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

Класс SemanticsNodeInteraction

Класс SemanticsNodeInteraction возвращается из onNodeWithText и похожих методов правила. Методы assert проверяют текст и видимость, методы perform имитируют клик, ввод и прокрутку. Цепочку начинают после setContent в тесте с @Test.

Синтаксис

composeTestRule.onNodeWithText("abcde").assertIsDisplayed()

Методы

Метод Описание
assertIsDisplayed Падает, если узел не виден на экране.
assertDoesNotExist Падает, если узел всё ещё есть в дереве.
assertTextEquals Сравнивает текст узла с ожидаемой строкой.
performClick Имитирует нажатие на узел.
performTextInput Вводит текст в editable поле.
performScrollTo Прокручивает список, пока узел не попадёт в видимую область.

Пример

Давайте проверим текст и нажмём кнопку:

import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertTextEquals import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test class InteractionChainTest { @get:Rule val composeTestRule = createComposeRule() @Test fun clickShowsSecondLine() { composeTestRule.setContent { val open = remember { mutableStateOf(false) } Button(onClick = { open.value = true }) { Text(text = "12345") } if (open.value) { Text(text = "abcde") } } composeTestRule.onNodeWithText("12345").performClick() composeTestRule.onNodeWithText("abcde").assertTextEquals("abcde") } }

Тест проходит: performClick сработал, новый Text "abcde" прошёл assertTextEquals.

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

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