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

Метод performTextInput

Метод performTextInput у SemanticsNodeInteraction добавляет строку в focused editable узел. Перед вводом поле находят через onNodeWithTag или onNodeWithText, иногда предварительно вызывают performClick.

Синтаксис

composeTestRule.onNodeWithTag("note").performTextInput("abcde")

Параметры

Параметр Описание
text Строка, которую набирают в поле.

Пример

Давайте введём abcde и проверим значение:

import androidx.compose.material3.OutlinedTextField import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.assertTextEquals import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performTextInput import org.junit.Rule import org.junit.Test class TextInputTest { @get:Rule val composeTestRule = createComposeRule() @Test fun typesNote() { composeTestRule.setContent { val value = remember { mutableStateOf("") } OutlinedTextField( value = value.value, onValueChange = { value.value = it }, modifier = Modifier.testTag("note"), ) } composeTestRule.onNodeWithTag("note").performTextInput("abcde") composeTestRule.onNodeWithTag("note").assertTextEquals("abcde") } }

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

Пример

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

import androidx.compose.material3.OutlinedTextField import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.test.assertTextEquals import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performTextInput import org.junit.Rule import org.junit.Test class AppendInputTest { @get:Rule val composeTestRule = createComposeRule() @Test fun appendsDigits() { composeTestRule.setContent { val value = remember { mutableStateOf("abcde") } OutlinedTextField( value = value.value, onValueChange = { value.value = it }, modifier = Modifier.testTag("note"), ) } composeTestRule.onNodeWithTag("note").performTextInput("12345") composeTestRule.onNodeWithTag("note").assertTextEquals("abcde12345") } }

Тест проходит: performTextInput дописал "12345" к начальному "abcde".

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

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