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
testdirectory. Put unit test classes injavadirectory and put your resources file inresdirectory. Android Studio should mark them like follow:
-
Create
gradletask 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
Filereference 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.