我面臨着奇怪的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()'不能與它一起使用。 –