首页 > 解决方案 > 将 androidTest 迁移到 Compose

问题描述

我们正在将我们的 Android 应用程序迁移到 Jetpack Compose。

在我们遗留的基于 Views 的应用程序中,我们有很多androidTest测试,在模拟器上运行,使用 Espresso。

我们的大多数测试都大量使用 EspressowithId()匹配器。但是当然,因为 Composables 没有 Views 的 id,所以我们遇到了问题。有没有办法将 id 分配给可组合项,并使用 重用现有的 Espresso 测试withId()?如果这是不可能的或某种不好的方法,那么在屏幕上搜索特定 UI 元素并单击它的正确方法是什么?

谢谢您的帮助

标签: androidandroid-espressoandroid-jetpack-compose

解决方案


您可以将testTag修饰符应用于您的可组合项。
就像是:

   Button(modifier = Modifier.testTag("myButton"), onClick = {}) {
         Text("myButton")
   }

然后你可以使用它:

   rule.onNodeWithTag("myButton")
        .assertIsEnabled()

推荐阅读