如何在没有 R.id.edit_text 的情况下在 Espresso 中进行测试?

How can to test in Espresso without R.id.edit_text?

我在 class 中创建了动态字段。而且我不能在布局中编写 EditTexts (.xml),所以我没有 R.id.edit_text,如何在 Espresso 2 中测试没有 R.id.edit_text 的编辑文本?如果我有 R.id.edit_text - 我可以写 onView(withId(R.id.edit_text)).perform(typeText("123")); 但我没有 R.id.edit_text.

withId 只是视图匹配器之一。你可以使用其他适合你的情况。您可以在 com.google.android.apps.common.testing.ui.espresso.matcherViewMatchers 下查看。 Google 可以找到代码 here

另外 hamcrest 匹配器可以帮助获得更复杂的条件。

示例之一可能是:

onView(allOf(
    isAssignableFrom("class name"), 
    withText("Text to match")))
    .perform(...);

如果您需要更复杂的匹配器,您也可以编写自己的匹配器。
我也建议阅读 the Espresso documentation.