我正在使用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中设置一个图像,请帮助我,谢谢。