Android Espresso通过Runtime()无法正常关闭Android模拟器上的手机数据

时间:2016-04-21 16:05:37

标签: android-testing android-instrumentation

我正在为Android模拟器(api 16和api 23)上没有数据的场景编写测试测试。我尝试了以下代码来禁用数据,

@Test
public void disconnectData() throws IOException {
    String line;

    Process p = Runtime.getRuntime().exec("svc data disable");

    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));

    while ((line = in.readLine()) != null) {
        System.out.println(line);
        Log.d("asdf", line);
    }

    in.close();
}

它没有做任何事情。数据未被禁用。它只是顺利通过。没有输出。

如果我使用adb从终端运行相同的命令,它可以工作:

adb -s emulator-5554 shell
svc data disable

1 个答案:

答案 0 :(得分:0)

替代解决方案是使用mockwebserver。如,

   server.enqueue(new MockResponse()
            .setResponseCode(HttpURLConnection.HTTP_INTERNAL_ERROR)
            .setBody(getStringFromFile(getInstrumentation().getContext(), "login.json")));