Android如何使用Espresso检查图像视图的内容

时间:2015-10-20 14:18:00

标签: android imageview android-espresso

我正在使用Glide将图像加载到URL的图像视图中。 如何在此图像视图上执行比较操作以检查是否确实已使用Espresso加载了正确的URL? 我在回收站视图中有许多这样的图像,并滚动到每个项目,如下所示:

for(int i=0;i<length;i++){

            onView(withId(R.id.people_recycler_view)).perform(RecyclerViewActions.scrollToPosition(i));

        }

但是在这个循环中如何检查图像视图内容?

谢谢!

1 个答案:

答案 0 :(得分:1)

一种简单(但不完全完整)的方法是在应用程序源代码中设置图像的任何位置添加适当的内容描述,然后使用onView(withContentDescription("Cute Picture Of Cat"));

如果没有剪切它,请在测试项目中添加预期图像,并使用图像比较库将其与您在屏幕上元素范围内看到的任何内容进行比较。

例如 - 创建并使用如下所示的自定义匹配器。您还必须编写自己的图像比较方法。

onView(withId(R.id.myElementThatHasImage)).
    CustomMatcher.compareImages(test.R.id.myExpectedImageID));

public static Matcher<Object> compareImages(Matcher<View> expectedImageView) {
    return new TypeSafeMatcher<View>() {

        @Override
        public void describeTo(Description description) {
            description.appendText("comparingImages");
        }

        @Override
        protected boolean matchesSafely(View actualImageView) {
            return MyCompareLibrary.compare(expectedImageView,(ImageView)actualImageView.getDrawable());
        }
    };
}
相关问题