Moh*_*mad 7 testing android android-testing android-snackbar android-jetpack-compose
我正在使用 jetpack compose 并使用此代码来显示我的 Snackbar:
LaunchedEffect(true) {
viewModel.snackBar.collectLatest { message ->
scaffoldState.snackbarHostState.currentSnackbarData?.dismiss()
scaffoldState.snackbarHostState.showSnackbar(message = message)
}
}
Run Code Online (Sandbox Code Playgroud)
通常,当我想访问 compose 元素时,我使用testTagin modifier。但 Snackbar 没有。那么我如何测试我的 Snackbar 是否显示特定文本?
我尝试使用:
composeRule.onNodeWithText(SNACKBAR_MESSAGE).assertIsDisplayed()
Run Code Online (Sandbox Code Playgroud)
但它找不到任何节点。
我们可以在 Snackbar 修饰符中传递 testtag 并断言它。
Snackbar(
modifier = Modifier
.padding(horizontal = 8.dp, vertical = 8.dp)
.testtag("Snackbar"))
{
Text(text=label,modifider=Modifier.testtag("SnackBar_Text")
}
Run Code Online (Sandbox Code Playgroud)
测试代码
onNodeWithTag("Snackbar").assertIsDisplayed
onNodeWithTag("SnackBar_Text").assertIsDisplayed //can get text from config and assert the strings too
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |