Assets Folder In Android Studio Unit Test
Solution 1:
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 lines in your test to get the context:
Context ctx = InstrumentationRegistry.getTargetContext();
this one will give you your app's context. You can use it to grab assets that are in src/main/assets for example.Context ctx = InstrumentationRegistry.getContext();
this one will give you the test app's context. You can use it to grab assets that are in src/androidTest/assets
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:
- First, instead of importing the old
InstrumentationRegistry
class, use the new one. - Instead of
InstrumentationRegistry.getTargetContext();
useApplicationProvider.getApplicationContext()
. Source - For
InstrumentationRegistry.getTargetContext();
: In most scenarios,ApplicationProvider.getApplicationContext()
should be used instead of the instrumentation test context. If you do need access to the test context for to access its resources, it is recommended to usePackageManager.getResourcesForApplication(String)
instead. Source
Solution 2:
I think you use the wrong context ( the application-context and not the instrumentation context ) use:
getInstrumentation().getContext();
Or see here where I exactly do what you want to do: https://github.com/ligi/gobandroid/blob/master/android/src/androidTest/java/org/ligi/gobandroidhd/base/AssetAwareInstrumentationTestCase.java
Post a Comment for "Assets Folder In Android Studio Unit Test"