Android-робот тестовая нагрузка растровое изображение из Drawable - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь загрузить растровое изображение из прорисовки в моих ресурсах, но оно кажется пустым при выполнении следующего кода в модульных тестах, но не пустым при запуске из обычного действия:

val bitmapImage = BitmapFactory.decodeResource(context!!.resources, R.drawable.my_image)
val bos = ByteArrayOutputStream()
val quality = 10
bitmapImage.compress(Bitmap.CompressFormat.JPEG, quality, bos)
val pixels = bos.toByteArray()

Я действительно не понимаю, что происходит, поскольку один и тот же код дает разные результаты, независимо от того, запускаю ли я его в приложении или в тесте ...

EDIT

При выполнении этого в инструментальных тестах все работает хорошо. Я все еще хотел бы понять, почему ничьи не получены в модульном тесте.

1 Ответ

0 голосов
/ 31 июля 2018

Из того, что я могу сказать, это вызвано реализацией Robolectric Shadow BitmapFactory , которая фактически не открывает ресурс, а просто устанавливает, что растровое изображение было "создано" этим ресурсом. Это тупая реализация, которая фактически не выполняет никакой работы.

Когда Robolectric видит объект, имеющий реализацию Robolectric Shadow, он использует реализацию Shadow вместо реального объекта. Для получения более подробной информации о работе теней см. Документацию Robolectric Shadows .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...