在 Espresso 测试中禁用自动更正功能

arn*_*e.z 7 android ui-testing android-espresso swift-keyboard android-8.1-oreo

我编写了一个 Espresso 测试,将一些文本写入 TextView,执行操作,然后检查 TextView 中的文本是否仍然相同。

在其中一台测试设备(华为 P20、Android 8.1.0)上测试失败,因为输入的文本会自动更正(从1234 567812th 5678)。这没有通过我的测试。当我手动输入相同的数字时,文本不会自动更正。

这就是我在 Espresso 测试中输入文本的方式:

onView(withId(R.id.reference_value))
            .perform(scrollTo(), click())
            .check(matches(isDisplayed()))
            .perform(typeText("1234 5678"));
        closeSoftKeyboard();
Run Code Online (Sandbox Code Playgroud)

我知道我可以将输入文本更改为不会自动更正的内容。但我希望有一个解决方案,通常可以确保输入的文本不会被修改为其他内容。理想情况下,无需手动更改测试设备的配置。

你们中有人知道我该如何实现这一目标吗?

Lee*_*ang 5

对我有用的一种方法是使用replaceText()它,尽管这似乎仍然有点麻烦。

另一种选择可能是通过某些 Android API 调用或通过 UI(如动画)手动禁用自动更正。