Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从使用PowerMockRunner运行的android单元测试加载json文件?_Android_Json_Unit Testing_Mockito_Powermock - Fatal编程技术网

如何从使用PowerMockRunner运行的android单元测试加载json文件?

如何从使用PowerMockRunner运行的android单元测试加载json文件?,android,json,unit-testing,mockito,powermock,Android,Json,Unit Testing,Mockito,Powermock,我正在使用PowerMockRunner运行我的单元测试。我想从我的资产文件夹中加载一些固定的网络响应json文件 我正在使用此方法尝试获取文件 private static File getFileFromPath(Object obj, String fileName) { ClassLoader classLoader = obj.getClass().getClassLoader(); URL resource = classLoader.getResou

我正在使用PowerMockRunner运行我的单元测试。我想从我的资产文件夹中加载一些固定的网络响应json文件

我正在使用此方法尝试获取文件

private static File getFileFromPath(Object obj, String fileName) {
        ClassLoader classLoader = obj.getClass().getClassLoader();
        URL resource = classLoader.getResource(fileName);
        return new File(resource.getPath());
    }
我从我的类中调用这样的方法,该类的顶部有这些注释

@RunWith(PowerMockRunner.class)
@PrepareForTest(Network.class)

File file = getFileFromPath(this, "mock_response.json");
但是,当我计算这个表达式时

classLoader.getResource(".");
运行此测试时,它显示我当前在下面的目录中

/Users/tylerpfaff/Library/Android/sdk/platforms/android-23/data/res/
由于我在platforms资源目录中,所以我不可能成功地从项目的资源目录加载资源。要访问项目的资源目录,我需要做什么?

您有两个选项:

  • 尝试通过
    classloader.getSystemClassLoader()
  • 从已被PowerMock忽略的类中获取类加载器。默认情况下:
“org.hamcrest.”,“java.”, “javax.accessibility.”、“sun.”、“org.junit.”、“org.testng.”, “junit.”、“org.pitest.”、“org.powermock.modules.junit4.common.internal.”, “org.powermock.modules.junit3.internal.powermockjunit3运行代理”, org.powermock.core*,“org.jacoco.agent.rt.*”

或者您可以使用
@PowerMockIgnore