Папка "Ресурсы" в Android Studio Unit Test

У меня есть проект Gradle со следующей структурой:

project/
    src/
        androidTest/
            java/
        main/
            java/
            res/
            AndroidManifest.xml
    build.gradle

Теперь я хочу добавить unit test, который использует ресурс (либо "raw", либо "asset" ).

Я поместил свой ресурс в project/androidTest/assets/test_file и обратился к нему с помощью getContext().getResources().getAssets().open("test_file");AndroidTestCase).

Однако это дает мне FileNotFoundException. Как я могу это исправить?

Ответ 1

Похоже, вы пытаетесь создать инструмент unit test, так как вы хотите создать его в папке androidTest.

Вы можете использовать одну из этих двух строк в своем тесте, чтобы получить контекст:

  • Context ctx = InstrumentationRegistry.getTargetContext(); это даст вам ваш контекст приложения. Вы можете использовать его для захвата активов, находящихся в src/ основных/активах, например.

  • Context ctx = InstrumentationRegistry.getContext(); это даст вам контекст тестового приложения. Вы можете использовать его для захвата активов, находящихся в src/ androidTest/assets

Если вы хотите узнать больше об активах в модульном тестировании, вы можете прочитать сообщение this. В этом файле github у вас есть пример.