【发布时间】:2016-01-27 10:05:27
【问题描述】:
我遇到了奇怪的浓缩咖啡仪器测试行为。单击回收站视图的项目不起作用。
此处未发生点击:
onView(withId(R.id.recyclerView)).perform(actionOnItemAtPosition(0, click()));
但这种解决方法有效:
onView(withId(R.id.recyclerView)).perform(actionOnItemAtPosition(0, recyclerClick()));
// ...
public static ViewAction recyclerClick() {
return new ViewAction() {
@Override
public Matcher<View> getConstraints() {
return any(View.class);
}
@Override
public String getDescription() {
return "performing click() on recycler view item";
}
@Override
public void perform(UiController uiController, View view) {
view.performClick();
}
};
}
这是 Espresso 或 RecyclerView 的问题吗?
【问题讨论】:
-
两者都不是; espresso 根本不“知道”如何点击回收站视图。一旦你为它提供了一个 howto 实现,它就知道了,而且它工作了。如果第二种方法不起作用,那将是一个问题;)
-
你试过用onData代替onView吗?
-
正如我们在官方文档中看到的 Espresso.onData()
Use this method to load (into the view hierarchy) items from AdapterView widgets (e.g. ListView).RecyclerView扩展ViewGroup。所以onData()不能和它一起使用。
标签: android android-recyclerview ui-testing android-espresso