Android 使用浓缩咖啡在随机列表元素上执行单击

Android 使用浓缩咖啡在随机列表元素上执行单击,android,testing,android-espresso,Android,Testing,Android Espresso,我正在尝试使用浓缩咖啡执行随机列表项的单击。我知道有一种方法可以在指定的位置单击适配器,但如何获得列表的大小?我知道在我回答这个问题时已经很晚了,但只是为了将来的参考。 您可以定义如下的自定义视图操作 private static final class ScrollToRandomPosition implements ViewAction { @SuppressWarnings("unchecked") @Override public Matcher<View> ge

我正在尝试使用浓缩咖啡执行随机列表项的单击。我知道有一种方法可以在指定的位置单击适配器,但如何获得列表的大小?

我知道在我回答这个问题时已经很晚了,但只是为了将来的参考。 您可以定义如下的自定义视图操作

private static final class ScrollToRandomPosition implements ViewAction {

    @SuppressWarnings("unchecked") @Override public Matcher<View> getConstraints() {
        return allOf(isAssignableFrom(RecyclerView.class), isDisplayed());
    }

    @Override public String getDescription() {
        return "scroll RecyclerView to random position ";
    }

    @Override public void perform(UiController uiController, View view) {
        Random ran = new Random();
        uiController.loopMainThreadUntilIdle();

        RecyclerView recyclerView = (RecyclerView) view;
        recyclerView.scrollToPosition(ran.nextInt(recyclerView.getAdapter().getItemCount()));
    }
}

adapter.getCount()
。。然后生成0和
计数之间的随机数。那么如何使用浓缩咖啡获得适配器?我明白了。。。好的,一种(hacky)方法是在活动中使用公共方法,类似于
public int getListSize(){return listSize;}
,然后在测试中可以调用
getActivity().getListSize()但是,是的,让您的活动返回适配器的大小不是很优雅。
public static ViewAction scrollToRandomPosition(){
    return new ScrollToRandomPosition();
}