javaandroidunit-testingandroid-resources

Assets folder in Android Studio Unit Test


I have a Gradle project with the following structure:

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

Now I want to add a unit test which uses a resource (either "raw" or "asset").

I put my resource into project/androidTest/assets/test_file and access it with getContext().getResources().getAssets().open("test_file"); (in an AndroidTestCase).

However, this gives me a FileNotFoundException. How can I fix this?


Solution

  • It looks like you're trying to create an instrumented unit test, since you want to create it in the androidTest folder.

    You can use one of these two options in your test to get the context:

    If you want to know more about assets in unit testing you can read this post. In this github file you have an example.

    Deprecation Note: As pointed out in the comments, these methods are now deprecated. This is the new recommended way: