我在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
上面添加兄弟关系吗?
或者有没有更好的方法在这种情况下滚动?