我正在处理应用笔记。我添加了一个注释,它被添加到列表的底部。作为espresso测试中的最后一个断言,我想确保ListView显示刚刚添加的listItem。这意味着抓住listView中的最后一项。我想你可能会以其他方式做到这一点? (例如,获取适应数据的大小,并转到那个位置?也许?),但列表的最后位置似乎很容易,但我还没有能够做到。有什么想法吗?
我已经尝试过这个解决方案,但Espresso似乎已经挂了。 http://www.gilvegliach.it/?id=1
答案 0 :(得分:1)
<强> 1。找到listView适配器中的元素数量并将其保存在某个变量中。我们假设适配器已经完全加载到现在。:
final int[] numberOfAdapterItems = new int[1];
onView(withId(R.id.some_list_view)).check(matches(new TypeSafeMatcher<View>() {
@Override
public boolean matchesSafely(View view) {
ListView listView = (ListView) view;
//here we assume the adapter has been fully loaded already
numberOfAdapterItems[0] = listView.getAdapter().getCount();
return true;
}
@Override
public void describeTo(Description description) {
}
}));
<强> 2。然后,知道listView适配器中的元素总数,您可以滚动到最后一个元素:
onData(anything()).inAdapterView(withId(R.id.some_list_view)).getPosition(numberOfAdapterItems[0] - 1).perform(scrollTo())