我正在尝试编写一个使用模拟JSON响应的单元测试。
基本上,我的意图是将json文件添加到/ res / raw,并使用与应用程序中相同的方法访问它们:
InputStream jsonStream = context.getResources().openRawResource(R.raw.mock_json_response)
但是当我这样做时,我收到以下错误:
android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f060001
我使用robolectric进行测试 - 我不确定这是否会改变外部文件的访问方式。
我已经尝试将JSON文件放在/app/src/main/res
和/app/src/test/res
中,但似乎都不起作用。
是否可以通过这种方式访问测试中的资源?
答案 0 :(得分:0)
否,您不能在单元测试期间使用资源ID。 单元测试意味着它们将在没有真实设备且与真实资源没有任何关系的情况下运行(在单元测试期间,您无权访问上下文,因此您无权访问资源)。
解决方法:
PowerMock允许您使用json文件模拟网络响应。
希望会有所帮助。