如何在没有 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.matcher
的 ViewMatchers
下查看。
Google 可以找到代码 here。
另外 hamcrest 匹配器可以帮助获得更复杂的条件。
示例之一可能是:
onView(allOf(
isAssignableFrom("class name"),
withText("Text to match")))
.perform(...);
如果您需要更复杂的匹配器,您也可以编写自己的匹配器。
我也建议阅读 the Espresso documentation.
我在 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.matcher
的 ViewMatchers
下查看。
Google 可以找到代码 here。
另外 hamcrest 匹配器可以帮助获得更复杂的条件。
示例之一可能是:
onView(allOf(
isAssignableFrom("class name"),
withText("Text to match")))
.perform(...);
如果您需要更复杂的匹配器,您也可以编写自己的匹配器。
我也建议阅读 the Espresso documentation.