我面临着奇怪的espresso仪器测试行为。点击回收商视图的项目不起作用。RecyclerView咖啡测试点击()不起作用
点击这里不发生了:
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();
}
};
}
这是咖啡或RecyclerView问题?
既不;意式浓缩咖啡根本不知道如何点击回收者视图。一旦你为它提供了一个howto实现,它就知道,并且它工作。 如果第二种方法不起作用,将会出现问题;) – Shark
您是否尝试过使用onData而不是onView? – Christopher
正如我们可以在[Espresso.onData()]的官方文档中看到的(http://developer.android.com/reference/android/support/test/espresso/Espresso.html#onData%28org.hamcrest.Matcher%3C ?%20extends%20java.lang.Object%3E%29) '使用此方法从AdapterView窗口小部件(例如ListView)加载(进入视图层次结构)项.' 'RecyclerView'扩展'ViewGroup'。所以'onData()'不能与它一起使用。 –