2017-01-05 2 views
1

Я пишу некоторые тесты пользовательского интерфейса для приложения, над которым я работаю, и мне нужно переключить изображение на основе push-уведомления. Чтобы написать тест без push-уведомлений, я помещаю png-файл в каталог androidTest res, а затем загружаю его с помощью ContextCompat.getDrawable(), используя идентификатор ресурса из тестовых ресурсов. Я также загружаю одно и то же изображение из ресурсов приложения, используя идентификатор из ресурсов приложения.Различные возможности рисования ресурсов приложений и тестовых ресурсов

Вот код, который загружает ресурсы:

Drawable drawable1 = ContextCompat.getDrawable(setupRule.getActivity().getApplicationContext(), R.drawable.my_contact_pic); 
Drawable drawable2 = ContextCompat.getDrawable(setupRule.getActivity().getApplicationContext(), com.mycompany.myapp.devenv.test.R.drawable.my_contact_pic); 

drawable1 является экземпляром BitmapDrawable, drawable2 является экземпляром NinePatchDrawable. Поскольку базовый PNG для drawable2 является копией PNG для drawable1, я бы ожидал, что оба они будут BitmapDrawables, я могу кодировать вокруг этого, но хотел бы понять, почему это происходит для будущей ссылки.

+0

Итак, я, наконец, понял это, чтобы загрузить png из ресурсов androidTest, вы должны указать InstrumentationRegister.getContext(), иначе он будет загружаться из ресурсов приложения. Было совпадением, что указанный идентификатор ресурса указывал на файл NinePatch. –

ответ

0

Итак, я, наконец, понял это, чтобы загрузить png из ресурсов androidTest, вы должны указать InstrumentationRegister.getContext(), иначе он будет загружаться из ресурсов приложения. Было совпадением, что указанный идентификатор ресурса указывал на файл NinePatch.

Смежные вопросы