espresso测试时如何将图像(例如从可绘制对象)设置为imageView?

时间:2019-03-27 12:07:48

标签: android testing imageview android-espresso

我正在使用espresso测试记录从相机捕获图像并将图像设置到imageView中,所以我无法做到这一点,因为当我按下相机捕获按钮时,由于明显的原因它没有进行记录,因此该方法是为了模拟捕获图像的过程,我发现有一些代码可以做到这一点,但是没有运气。

我从这里尝试过此代码  How to set image in imageview while testing with espresso?

public static void simulatePictureFromCameraRoll(Uri pictureUri) throws  Exception {
    Exception returnException = null;
    Intent resultData = new Intent();

    resultData.setData(pictureUri);

    Intents.init();
    try {
        Matcher<Intent> expectedIntent = hasAction(Intent.ACTION_GET_CONTENT);
        intending(expectedIntent).respondWith(new Instrumentation.ActivityResult(Activity.RESULT_OK, resultData));
        onView(withId(R.id.newUpdatedIDCardImg)).perform(click());
        intended(expectedIntent);
    }
    catch (Exception e) {
        returnException = e;
    }
    finally {
        Intents.release();
    }

    if (returnException != null) {
        throw returnException;
    }
}

在这里,以及我如何使用该方法,我使用了一些可绘制的图像:

intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(
            new Instrumentation.ActivityResult(Activity.RESULT_OK, null));


    //Uri uri = Uri.parse("R.drawable.bg_shape");
    Uri myURI = Uri.parse("android.resource://com.example.project/" + R.drawable.bg_shape);

    try {
        simulatePictureFromCameraRoll(myURI);
    } catch (Exception e) {
        e.printStackTrace();
    }

我想要的是简单地使用espresso在imageview中设置一个图像,请帮助我,谢谢。

0 个答案:

没有答案