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

Метод performClick

Метод performClick у SemanticsNodeInteraction отправляет клик в центр узла. Работает для Button, clickable и других элементов с gesture. После клика часто вызывают waitForIdle и assert.

Синтаксис

composeTestRule.onNodeWithText("12345").performClick()

Пример

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

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 PerformClickTest { @get:Rule val composeTestRule = createComposeRule() @Test fun clickOpensLine() { 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() } }

Тест проходит: клик по кнопке показал Text "abcde".

Пример

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

import androidx.compose.foundation.clickable import androidx.compose.material3.Text 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.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test class ClickableTextTest { @get:Rule val composeTestRule = createComposeRule() @Test fun tapTag() { composeTestRule.setContent { val done = remember { mutableStateOf(false) } Text( text = "abcde", modifier = Modifier .testTag("tap") .clickable { done.value = true }, ) if (done.value) { Text(text = "12345") } } composeTestRule.onNodeWithTag("tap").performClick() composeTestRule.onNodeWithText("12345").assertIsDisplayed() } }

Тест проходит: performClick по tag "tap" добавил строку "12345".

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

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