Używam Ekspres contrib do wykonywania czynności na RecyclerView
i działa tak jak powinno, ex:Jak sprawdzić wnętrze urządzenia RecyclerView w ekspresie?
onView(withId(R.id.recycler_view))
.perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); //click on first item
i muszę wykonywać na nim twierdzeń. Coś takiego:
onView(withId(R.id.recycler_view))
.perform(RecyclerViewActions.actionOnItemAtPosition(0, check(matches(withText("Test Text"))));
ale ponieważ RecyclerViewActions jest, oczywiście, oczekując akcję, to mówi niewłaściwy typ 2nd argumentu. Na espresso-contrib nie ma numeru RecyclerViewAssertions
.
Czy istnieje sposób na zapewnienie asercji w widoku recyklera?
Nie działa dla mnie, jeśli element na tej pozycji aktualnie nie pasuje do ekranu. – riwnodennyk
Najpierw należy przewinąć do pozycji? onView (withId (R.id.id.recycler_view)). perform (RecyclerViewActions.scrollTo (2)); – HowieH
Wciąż to samo. Nie działa, np. dla pozycji = 30. Problem polega na tym, że 'RecyclerView.findViewHolderForAdapterPosition (position)' powinno być używane z 'RecyclerView.getChildAt()' jak pokazano w odpowiedzi poniżej. – riwnodennyk