使用espresso进行测试时,它需要在recyclerView中单击一个项目以在viewPager中打开,并且要验证viewpager中当前视图的内容是否是在recyclerView中单击的内容。 / p>
var viewInteraction = onView(withId(R.id.recyclerview_list))
.perform(RecyclerViewActions
.scrollToPosition<RecyclerView.ViewHolder>(10))
sleep(3000)
viewInteraction.perform(click())
在这里,recyclerView滚动到第10个位置,然后单击该项目,这将打开Viewpager并显示第10个项目的内容。
recyclerView中项目的布局具有TextView,该TextView具有R.id.content_lablel。而且,viewpager包含的片段中的布局还具有带有R.id.content_label的TextView,应该为recyclerView的第10个项目显示相同的标签文本。
它可以检查viewPager是否已打开以及ID为R.id.content_label的视图是否在显示中:
// check viewerPager is opened
onView(withId(R.id.pagerFragmentContainer)).check(matches(isDisplayed()))
//check the TextView with id of R.id.content_label is in display
onView(allOf(withId(R.id.content_label), isCompletelyDisplayed())
但是如何验证带有此R.id.content_label的TextView文本与recycleView的第10个项目中的文本相同?
基本上在寻找
onView(allOf(withId(R.id.content_label), isCompletelyDisplayed()).check(matches(withText("Hello!")
但是文本"Hello!"
实际上是来自recyclerView第十项的文本,而不是硬编码的文本。