使用Espresso执行单击随机列表元素

时间:2015-02-06 09:20:37

标签: android testing android-espresso

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

1 个答案:

答案 0 :(得分:0)

我知道当我回答这个问题时已经很晚了,但仅供将来参考。 您可以定义类似这样的自定义视图操作

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()));
    }
}

所以你可以在外面调用

public static ViewAction scrollToRandomPosition(){
    return new ScrollToRandomPosition();
}