Depending on android-gradle-plugin
version:
1. version 1.5 and higher:
Just put json file to src/test/resources/test.json
and reference it as
classLoader.getResource("test.json").
No gradle modification is needed.
2. version below 1.5: (or if for some reason above solution doesn’t work)
-
Ensure you’re using at least Android Gradle Plugin version 1.1. Follow the link to set up Android Studio correctly.
-
Create
test
directory. Put unit test classes injava
directory and put your resources file inres
directory. Android Studio should mark them like follow: -
Create
gradle
task to copy resources into classes directory to make them visible forclassloader
:android{ ... } task copyResDirectoryToClasses(type: Copy){ from "${projectDir}/src/test/res" into "${buildDir}/intermediates/classes/test/debug/res" } assembleDebug.dependsOn(copyResDirectoryToClasses)
-
Now you can use this method to get
File
reference for the file resource:private static File getFileFromPath(Object obj, String fileName) { ClassLoader classLoader = obj.getClass().getClassLoader(); URL resource = classLoader.getResource(fileName); return new File(resource.getPath()); } @Test public void fileObjectShouldNotBeNull() throws Exception { File file = getFileFromPath(this, "res/test.json"); assertThat(file, notNullValue()); }
- Run unit test by Ctrl+Shift+F10 on whole class or specyfic test method.