android - 将 androidTest 迁移到 Compose
问题描述
我们正在将我们的 Android 应用程序迁移到 Jetpack Compose。
在我们遗留的基于 Views 的应用程序中,我们有很多androidTest
测试,在模拟器上运行,使用 Espresso。
我们的大多数测试都大量使用 EspressowithId()
匹配器。但是当然,因为 Composables 没有 Views 的 id,所以我们遇到了问题。有没有办法将 id 分配给可组合项,并使用 重用现有的 Espresso 测试withId()
?如果这是不可能的或某种不好的方法,那么在屏幕上搜索特定 UI 元素并单击它的正确方法是什么?
谢谢您的帮助
解决方案
您可以将testTag
修饰符应用于您的可组合项。
就像是:
Button(modifier = Modifier.testTag("myButton"), onClick = {}) {
Text("myButton")
}
然后你可以使用它:
rule.onNodeWithTag("myButton")
.assertIsEnabled()
推荐阅读
- python-3.x - 确保具有相同名称但不同扩展名的文件位于同一文件夹中
- windbg - WinDBG 是否支持多行命令?
- spring-boot - 带有事务注释的 Spring 重试
- javascript - 插入
- 在 TinyMCE v5 的 div 中
- java - 计算子序列
- python - 在 AWS Lambda 中导入光栅
- sql - Postgres查询时间执行在两个查询之间变化很大
- typescript - Vue 3 + vue-property-decorator 的“超级表达式必须为 null 或函数”
- java - 为什么“class new {”会给出编译错误“identifier is expected”?
- javascript - 如何正确制作自定义复选框组件Vue