Espresso:在recyclerview上滚动,没有唯一的ID或文本

时间:2016-05-02 17:14:21

标签: android android-espresso

我在Android Espresso测试中在RecyclerView内滚动时遇到问题。我想我已经阅读了很多不同的解决方案,而我最接近的是ViewHolderMatcher。以下是我写的ViewHolderMatcher

    public static Matcher<RecyclerView.ViewHolder> withHolderTimeView(final String text) {
    return new BoundedMatcher<RecyclerView.ViewHolder, AccountViewHolder>(AccountViewHolder.class) {

        @Override
        public void describeTo(Description description) {
            description.appendText("No ViewHolder found with text: " + text);
        }

        @Override
        protected boolean matchesSafely(AccountViewHolder item) {
           TextView accountNum = (TextView) item.itemView.findViewById(R.id.account_number_value);
            if (accountNum == null) {
                return false;
            }
            return accountNum.getText().toString().contains(text);
        }
    };
}

这里的问题是R.id.account_number_value和我传递给匹配的相应文本可能会出现多次。没有具有唯一值的唯一ID。

我可以获得一个独特项目的唯一方法是结合兄弟视图和我正在寻找的视图文本。有什么方法可以在ViewHolderMatcher上面添加兄弟关系吗?

或者有没有更好的方法在这种情况下滚动?

0 个答案:

没有答案