繁体   English   中英

使用jetpack compose时在android测试中测试小吃吧

[英]Testing snack bar in android testing when using jetpack compose

我正在使用 jetpack compose 并使用此代码显示我的小吃店:

 LaunchedEffect(true) {
        viewModel.snackBar.collectLatest { message ->
            scaffoldState.snackbarHostState.currentSnackbarData?.dismiss()
            scaffoldState.snackbarHostState.showSnackbar(message = message)
        }
    }

通常,当我想访问 compose 元素时,我会在modifier中使用testingTag 但小吃店没有。 那么如何测试我的小吃店是否显示有特定的文字?

我尝试使用:

 composeRule.onNodeWithText(SNACKBAR_MESSAGE).assertIsDisplayed()

但它找不到任何节点。

我们可以在snackbar 修饰符中传递testtag,我们可以断言它。

Snackbar(
      modifier = Modifier
                  .padding(horizontal = 8.dp, vertical = 8.dp)
                  .testtag("Snackbar"))
         { 
            Text(text=label,modifider=Modifier.testtag("SnackBar_Text")
          }

测试代码

onNodeWithTag("Snackbar").assertIsDisplayed
onNodeWithTag("SnackBar_Text").assertIsDisplayed //can get text from config and assert the strings too

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM