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

Метод onNodeWithText

Метод onNodeWithText у ComposeContentTestRule находит элемент с заданной строкой в дереве semantics. Возвращает SemanticsNodeInteraction для assertIsDisplayed и performClick. Строка должна совпадать с Text или editable полем.

Синтаксис

composeTestRule.onNodeWithText("abcde")

Параметры

Параметр Описание
text Искомая строка на экране или в semantics.
substring Если true, достаточно части строки.
ignoreCase Если true, регистр букв не учитывают.

Пример

Давайте найдём 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 OnNodeWithTextTest { @get:Rule val composeTestRule = createComposeRule() @Test fun findsLabel() { composeTestRule.setContent { Text(text = "abcde") } composeTestRule.onNodeWithText("abcde").assertIsDisplayed() } }

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

Пример

Давайте нажмём на Text 12345 через performClick:

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.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test class ClickByTextTest { @get:Rule val composeTestRule = createComposeRule() @Test fun clicksButtonLabel() { 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").assertIsDisplayed() } }

Тест проходит: после клика по "12345" появился Text "abcde".

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

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