Я использую тестовую запись эспрессо для захвата изображения с камеры и установки изображения в imageView, я не мог этого сделать, потому что когда я нажимаю на кнопку захвата камеры, она не записывает по очевидной причине, поэтому способ сделать этоэто издевательство над процессом захвата изображения Я нашел какой-то код для этого, но не повезло.
Я попробовал этот код отсюда Как установить изображение в режиме просмотра изображений при тестировании с эспрессо?
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();
}
я просто хочу установить изображение в просмотре изображений с помощью эспрессо, пожалуйста, помогите мне и спасибо ввперед.