2017-01-05 16 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.