我编写了一个Espresso测试,该测试将一些文本写入TextView,执行一个操作,然后检查TextView中的文本是否仍然相同。
在其中一种测试设备(华为P20,Android 8.1.0)上,测试失败,因为输入的文本已自动更正(从1234 5678
到12th 5678
)。 这无法通过我的测试。当我手动输入相同的数字时,文本不会自动更正。
这是我在Espresso测试中输入文本的方式:
onView(withId(R.id.reference_value))
.perform(scrollTo(), click())
.check(matches(isDisplayed()))
.perform(typeText("1234 5678"));
closeSoftKeyboard();
我知道我可以将输入文本更改为不会自动更正的内容。但是我想有一个解决方案,通常可以确保输入的文本不会被修改为其他内容。理想情况下,无需手动更改测试设备的配置。
你们中的任何一个有一个想法我该如何完成吗?
答案 0 :(得分:1)
一种对我有用的方法是改为使用replaceText()
,尽管这似乎还是有点hacking。
另一个选择可能是通过某些Android API调用或通过用户界面(例如animations)来禁用自动更正。