android如何在单元测试和仪器测试之间共享资源?
How to share resources between unit test and instrumentation test in android?
我正在关注此 post、http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/, to share code, but how to share an asset?, like a fixture file?, I want to mock an api response, so I have a JSON file to do it, but I try this: https://gist.github.com/nebiros/91a68aaf6995fa635507
在单元测试中,这有效:
ClassLoader.getSystemResourceAsStream("some_response.json");
但是在Android Intrumentation Tests 中,它没有,我可以把这些fixture 文件放在哪里?
我找到了这种方式,可以共享从 test
到 androidTest
的夹具文件:
- 将您的夹具文件添加到
test
的 resources
文件夹中,此处:src/test/resources
。
将 test
资源文件夹添加到 androidTest
、resources.srcDirs += ['src/test/resources']
,这是一个示例:
android {
sourceSets {
String sharedTestJavaDir = 'src/sharedTest/java'
test {
java.srcDirs += [sharedTestJavaDir]
}
androidTest {
java.srcDirs += [sharedTestJavaDir]
resources.srcDirs += ['src/test/resources']
}
}
}
以这种方式从您的 androidTest
环境访问夹具文件:this.getClass().getClassLoader().getResourceAsStream(filename);
我正在关注此 post、http://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/, to share code, but how to share an asset?, like a fixture file?, I want to mock an api response, so I have a JSON file to do it, but I try this: https://gist.github.com/nebiros/91a68aaf6995fa635507
在单元测试中,这有效:
ClassLoader.getSystemResourceAsStream("some_response.json");
但是在Android Intrumentation Tests 中,它没有,我可以把这些fixture 文件放在哪里?
我找到了这种方式,可以共享从 test
到 androidTest
的夹具文件:
- 将您的夹具文件添加到
test
的resources
文件夹中,此处:src/test/resources
。 将
test
资源文件夹添加到androidTest
、resources.srcDirs += ['src/test/resources']
,这是一个示例:android { sourceSets { String sharedTestJavaDir = 'src/sharedTest/java' test { java.srcDirs += [sharedTestJavaDir] } androidTest { java.srcDirs += [sharedTestJavaDir] resources.srcDirs += ['src/test/resources'] } } }
以这种方式从您的
androidTest
环境访问夹具文件:this.getClass().getClassLoader().getResourceAsStream(filename);