Метод assertDoesNotExist
Метод assertDoesNotExist у
SemanticsNodeInteraction
падает, если узел ещё найден.
Используют после действия,
которое должно убрать Text с экрана,
или для проверки начального состояния.
Синтаксис
composeTestRule.onNodeWithText("abcde").assertDoesNotExist()
Пример
Давайте убедимся, что скрытый Text отсутствует:
import androidx.compose.material3.Text
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.test.assertDoesNotExist
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import org.junit.Rule
import org.junit.Test
class AssertMissingTest {
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun hiddenTextMissing() {
composeTestRule.setContent {
val show = remember { mutableStateOf(false) }
if (show.value) {
Text(text = "abcde")
}
}
composeTestRule.onNodeWithText("abcde").assertDoesNotExist()
}
}
Тест проходит: узла с "abcde"
нет в дереве semantics.
Пример
Давайте проверим отсутствие после клика:
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.assertDoesNotExist
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 RemoveAfterClickTest {
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun lineRemoved() {
composeTestRule.setContent {
val show = remember { mutableStateOf(true) }
Button(onClick = { show.value = false }) {
Text(text = "12345")
}
if (show.value) {
Text(text = "abcde")
}
}
composeTestRule.onNodeWithText("12345").performClick()
composeTestRule.onNodeWithText("abcde").assertDoesNotExist()
}
}
Тест проходит: после нажатия Text "abcde"
исчез из дерева.
Смотрите также
-
метод
assertIsDisplayed,
проверка видимости -
метод
performClick,
перед assertDoesNotExist -
метод
onNodeWithText,
поиск узла для assert -
класс
SemanticsNodeInteraction,
где объявлен assertDoesNotExist