2017-03-20 64 views
0

我有一个Android应用程序,它有一个带有N个元素的RecyclerView,当这个RecyclerView在滚动时达到结束时,会添加更多元素(因此,它是一个无限列表,当滚动到达底部)。Espresso Recyclerview滚动到结尾

我想测试这个,但我还没有找到办法做到这一点。我使用了具有scrollToPosition的RecyclerViewActions,但即使放置了最后一个位置,也没有达到结尾(因为每个元素的高度都很高)。

有人知道我该怎么做?

+0

如果您在测试过程中执行了拖动事件,该怎么办?像这样 - https://qathread.blogspot.com/2014/01/discovering-espresso-for-android-swiping.html – Shmuel

+0

测试进行得如此之快,以至于我没有足够的时间将它刷下来。而且我也尝试过使用Espresso Recorder,但拖动事件没有被捕获。 – LordWater

回答

3

我用下面的代码滚动到我的RecyclerView的底部。

activity = mActivityTestRule.launchActivity(startingIntent); 

onView(withId(R.id.recyclerView)) 
       .perform(RecyclerViewActions.scrollToPosition(activity.recyclerView.getAdapter().getItemCount() - 1)); 

然后您就必须使用idling resources(或Thread.sleep())时,更多的数据加载到再次调用此。

+0

我错过了房车有自己的滚动。谢谢。 –

0

我用这个;

// Get total item of myRecyclerView 
RecyclerView recyclerView = mActivityTestRule.getActivity().findViewById(R.id.myRecyclerView); 
int itemCount = recyclerView.getAdapter().getItemCount(); 

Log.d("Item count is ", String.valueOf(itemCount)); 

// Scroll to end of page with position 
onView(withId(R.id.myRecyclerView)) 
    .perform(RecyclerViewActions.scrollToPosition(itemCount - 1));