将 androidTest 迁移到 Compose

Migrate androidTest to Compose

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

在我们基于视图的旧版应用程序中,我们有很多 androidTest 测试,运行 在模拟器上,使用 Espresso。

我们的大部分测试大量使用 Espresso withId() 匹配器。但当然,由于可组合项不像视图那样具有 ID,因此我们遇到了问题。 有没有办法将 ID 分配给可组合项,并使用 withId() 重用现有的 Espresso 测试? 如果不可能或某种程度上是一种糟糕的方法,那么在屏幕上搜索特定 UI 元素并单击它的正确方法是什么?

感谢您的帮助

您可以将 testTag 修饰符应用于您的可组合项。
类似于:

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

然后您可以将其用于:

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