espresso如何验证在recyclerview上单击的项目是否显示在viewpager中

时间:2019-01-04 01:30:55

标签: android-recyclerview android-viewpager android-espresso

使用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第十项的文本,而不是硬编码的文本。

0 个答案:

没有答案