Метод 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".
Смотрите также
-
метод
onNodeWithTag,
поиск по testTag -
метод
assertTextEquals,
точное сравнение текста узла -
метод
setContent,
откуда берётся Text -
класс
SemanticsNodeInteraction,
тип результата поиска