android - 在 UIAutomator 测试中引用资源标识符的最佳方式是什么?

标签 android android-studio android-uiautomator

我最近开始使用 UIautomator 来测试我的 Android 应用。

以下代码 fragment 显示了测试用例代码中的典型语句:

mDevice.findObject(By.res(BASIC_SAMPLE_PACKAGE, "editTextUserInput"))
                .setText(STRING_TO_BE_TYPED);

如您所见,“editTExtUserInput”被引用为字符串。在我的应用程序源代码中,这被定义为资源标识符 (R.id.editTextUserInput)。

在当前情况下,当我更改我的应用程序中标识符的名称时,我所有的测试用例都会搞砸(我将不得不手动更改所有字符串值)...有没有人有解决方案这个问题?

最佳答案

Google 的大部分 Android 测试团队都在花时间构建 Espresso ,一个新的 UI 测试框架,专门使这些情况更容易。例如,该行可以是

onView(withId(R.id.editTextUserInput)).typeText(STRING_TO_BE_TYPED);

标识符自动完成和重构之类的事情也会影响这些测试。

关于android - 在 UIAutomator 测试中引用资源标识符的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082374/

相关文章:

android - 将外部 jar 添加到 Android UIautomator 项目

android - 找不到 Quickblox 的 StickersManager 类

android - 在 cordova 内打开适用于 ios、android 和 windows 的外部应用程序

java - 如何在 java 的 android 2.2 sdk 中使用 flash player lite 播放 .swf?

android - PhoneGap 安卓插件 : Success & Failure Callback not getting called

android - Facebook SDK导致 'appDebug'错误

android - 在水平 ScrollView 中单击时如何滚动到芯片?

android - 升级到 Gradle 2.3.0 后 Android 应用程序导入错误

android uiautomator 如何管理测试方法顺序

android-uiautomator - uiautomatorviewer - NAF 代表什么?