2016-07-25 1 views
7

Я хочу сохранить файл Sting and Raw в моем модуле androidTest и прочитать его, когда это необходимо в тесте Espresso.Espresso Read String Значение файла

Я держу папку res под androidTest и могу синхронизировать и генерировать R-файл для этого же. Но когда я попытался получить доступ к строковым ресурсам, используя

getTargetContext.getString(R.string.product_name) или используя mAcitivityRule.getActivity.getString(R.string.product_name) Я получаю некоторое случайное значение, которое даже не используется нигде в файле ресурсов.

String output: "res/drawable-v21/abc_action_bar_item_background_material.xml" 

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

ответ

12

Вы должны использовать InstrumentationRegistry.getContext() вместо InstrumentationRegistry.getTargetContext(), а затем использовать соответствующий пакет для сгенерированного файла R (по умолчанию он будет добавлять .test к пакету):

Resources resources = InstrumentationRegistry.getContext().getResources(); 
String name = resources.getString(com.your_package.test.R.string.product_name); 

Обратите внимание на test часть в имени ресурса.

+2

Должно ли это зайти в метод '@ Before' setUp? –