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

Метод onNodeWithContentDescription

Метод onNodeWithContentDescription у ComposeContentTestRule находит узел по строке contentDescription. Её задают у Icon и других элементов без видимого текста. Дальше работают с SemanticsNodeInteraction.

Синтаксис

composeTestRule.onNodeWithContentDescription("abcde")

Параметры

Параметр Описание
label Ожидаемое contentDescription узла.
substring Если true, достаточно части описания.
ignoreCase Если true, регистр не учитывают.

Пример

Давайте найдём Icon по описанию abcde:

import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Home import androidx.compose.material3.Icon import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import org.junit.Rule import org.junit.Test class ContentDescriptionTest { @get:Rule val composeTestRule = createComposeRule() @Test fun findsIcon() { composeTestRule.setContent { Icon( imageVector = Icons.Filled.Home, contentDescription = "abcde", ) } composeTestRule.onNodeWithContentDescription("abcde").assertIsDisplayed() } }

Тест проходит: Icon с описанием "abcde" найден и виден.

Пример

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

import androidx.compose.foundation.layout.Row import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Home import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.Icon import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import org.junit.Rule import org.junit.Test class TwoDescriptionsTest { @get:Rule val composeTestRule = createComposeRule() @Test fun findsSecondIcon() { composeTestRule.setContent { Row { Icon( imageVector = Icons.Filled.Home, contentDescription = "abcde", ) Icon( imageVector = Icons.Filled.Settings, contentDescription = "12345", ) } } composeTestRule.onNodeWithContentDescription("12345").assertIsDisplayed() } }

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

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

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