首先,要确保在每个测试用例中都正确使用了 ComposeTestRule
。
然后,可以使用 waitFor
等待要测试的元素的出现。这可能包括等待列表中的卡片出现。
例如:
waitFor {
findText("Card Title")
}
这个代码将等待页面中出现带有 "Card Title" 文本的元素。
如果要测试列表中的每个卡片,可以使用 onNodeWithTag
获取所有具有特定标记的节点,并在这些节点上执行操作。
例如:
val cardNodes = composeTestRule.activityRule.onNodeWithTag("card")
cardNodes.forEachIndexed { index, cardNode ->
//在卡片上执行操作
}
这个代码将获取所有具有 "card" 标记的节点并循环遍历它们,然后在每个卡片上执行操作。
请注意,在 Compose 中,通常需要对测试节点打上特定的标记。
Card(
modifier = Modifier
.fillMaxWidth()
.testTag("card")
) {
//卡片内容
}
这个代码将为卡片节点打上 "card" 标记,以便在测试中引用它们。
最后,可以使用 assert
检查测试结果是否正确。这可能包括检查卡片是否按预期出现、应如何响应用户交互等。
例如:
val cardNodes = composeTestRule.activityRule.onNodeWithTag("card")
//检查列表中是否有两个卡片
assert(cardNodes.count() == 2)
//检查第一个卡片是否显示为“Card Title”
assert(cardNodes.first().findText("Card Title").isNotEmpty())
//在第二个卡片上点击