JUnitTest / Mockito / PowerMockito :: 试图从android中的res / raw文件访问dataSet json文件,但得到“ InvocationTargetException ”
InputStream in = this.getClass().getClassLoader().getResourceAsStream("resource.json");
try {
Reader reader = new InputStreamReader(in, "UTF-8");
ConfigModel result = new Gson().fromJson(reader, ConfigModel.class);
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
编辑:更新的版本。
如果您使用Android工具测试,那么您可以获得context
,并且可以执行类似的操作,
@Test
public void someTest() {
// Context of the app under test.
// In this case put your resource in your app's assets folder src/main/assets
Context appContext = InstrumentationRegistry.getTargetContext();
/ **
* Context of the test app.
* In this case put your resource in your test app's assets folder src/androidTests/assets
* Context appContext = InstrumentationRegistry.getContext();
**/
InputStream in = null;
try {
in = appContext.getAssets().open("resource.json");
} catch (IOException e) {
e.printStackTrace();
}
}
如果您不想进入Android测试方式,则简单的方法是将resource.json
放在src/test/resources
文件夹下,然后上面的代码将起作用。像这样的东西。
@Test
public void test() {
ClassLoader classLoader = this.getClass().getClassLoader();
InputStream res = classLoader.getResourceAsStream("testFlags.json");
}
我对此进行了一些测试,可以说它们运行良好。让我知道怎么回事。