我正在使用Robolectric来测试我的 Android 应用程序。我正在尝试编写一个测试来验证我的 Android 应用程序是否正确接收来自 HttpResponse 的 cookie。我尝试了几个选项,但无法让它工作。
这是我在测试中尝试的:
BasicHeader responseHeader = new BasicHeader("Set-Cookie", "cookiename=value");
String responseBody = "OK"
int responseCode = 200;
HttpResponse httpResponse = new TestHttpResponse(responseCode, responseBody, responseHeader);
Robolectric.addPendingHttpResponse(httpResponse);
这就是我的 Android 应用程序代码的样子:
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(urlString);
// omitted: add username & password to request as urlencoded parameters
HttpResponse response = client.execute(httpPost);
// ...
List<Cookie> cookies = client.getCookieStore().getCookies();
其他测试运行良好,所以我让 Robolectric 工作。但是 cookie 列表始终是空的,尽管当我将应用程序与(应用程序引擎)后端一起使用时,它工作正常。但是,我可以在测试中从 HttpPost 获取 urlencoded 用户名和密码,因此请求确实得到了处理,只是没有任何 cookie。
有没有人尝试过类似的东西?