我試圖更新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