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

时间:2018-08-24 14:23:06

标签: android android-espresso ui-testing android-8.1-oreo swift-keyboard

我编写了一个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();

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

你们中的任何一个有一个想法我该如何完成吗?

1 个答案:

答案 0 :(得分:1)

一种对我有用的方法是改为使用replaceText(),尽管这似乎还是有点hacking。

另一个选择可能是通过某些Android API调用或通过用户界面(例如animations)来禁用自动更正。