Ресурсы в вашем тестовом приложении и вашем основном приложении доступны отдельно в тестовом наборе инструментов.Если вы хотите получить доступ к ресурсам, которые находятся в папке res / raw или assets самого тестового проекта, вы можете использовать
getInstrumentation().getContext().getResources()
Для доступа к ресурсам в тестируемом приложении («целевом» приложении),используйте
getInstrumentation().getTargetContext().getResources()
Обратите внимание, однако, что вы никогда не можете изменять файлы в папке ресурсов;
getResources().getAssets().open(sourceFile)
возвращает InputStream.Нет способа изменить файл.Это потому, что ресурсы хранятся в сжатом виде внутри APK и вообще не доступны для записи.
Если вы хотите изменить путь к файлам, которые использует тестируемое действие, вам следует использовать ActivityUnitTestCase и setActivityContext () с RenamingDelegatingContext .Это позволяет перенаправить доступ к файлам и базам данных в контексте в новый каталог, указав префикс каталога.Вы даже можете использовать более сложный конструктор , чтобы обернуть целевой контекст для большинства операций, но использовать контекст вашего тестового приложения для файловых операций, так что действие получит доступ к файлам, хранящимся в тестовом приложении, а не в основном приложении, нопо-прежнему использовать другие ресурсы в основном приложении.