我试图更新EditText
作为咖啡与测试的一部分:更新一个EditText与咖啡
onView(allOf(withClassName(endsWith("EditText")), withText(is("Test")))).perform(clearText())
.perform(click())
.perform(typeText("Another test"));
不过,我收到以下错误:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: No views in hierarchy found matching: (with class name: a string ending with "EditText" and with text: is "Test")
通过分解测试我可以看到在执行clearText()
之后会发生这种情况,所以我假定匹配器在每个perform
之前重新运行,并且在第二个动作之前失败。虽然这是有道理的,但是对于如何使用Espresso更新EditText
,我还是有点困惑。我应该怎么做?
请注意,在此场景中,我无法使用资源ID或类似信息,因此必须使用上述组合来识别正确的视图。
感谢您的答复。不幸的是,在活动中有多个EditTexts,编程式生成时没有ID,所以这些建议都不起作用。 – jgm
我明白了。也许你可以为你创建的每个EditText设置一个标签,并根据该标签找到视图。该标签只能用于测试,但它至少会给你一些区别EditText字段的东西。然后再次,这可能会违反你在问题结尾处提到的情况(我在回答之前忽略了那部分内容)。 – Maxwell