Можно ли утверждать, что узел прокручивается в тестировании компоновки jetpack

#android #android-jetpack-compose #android-testing #android-jetpack-compose-testing

Вопрос:

Можно ли утверждать, что узел компоновки jetpack можно прокручивать при выполнении тестов?

 class MyTest {
    @get:Rule
    val composeTestRule = createComposeRule()

    @Test
    fun givenEnoughItems_thenAssertListIsScrollable() {
        composeTestRule.setContent {
            BasicTheme {
                ScrollableComponent(items = List(1000) { "$it" })
            }
        }

        composeTestRule.onRoot().fetchSemanticsNode().assertIsScrollable()
    }
}

fun SemanticsNodeInteraction.assertIsScrollable() : SemanticsNodeInteraction {
    // What would go here? 
}
 

Ответ №1:

Воспользуйся hasScrollAction() .

Пример

 import androidx.compose.ui.test.hasScrollAction
import androidx.compose.ui.test.assert

private fun assertNodeIsScrollable() {
    findNode().assert(hasScrollAction())
}
 

и findNode() было бы что-то вроде

 private fun findNode(): SemanticsNodeInteraction {
    return composeTestRule.onNodeWithTag(
        testTag = "test_tag",
    )
}