Robolectric:在 HttpResponse 中测试 Cookie



我正在使用Robolectric来测试我的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);

这就是我的安卓应用代码的样子:

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获取urlen编码的用户名和密码,因此请求确实得到了处理,只是没有任何cookie。

有没有人尝试过类似的东西?

在调用 android 的连接方法之前放置 Robolectric.addPendingHttpResponse(httpResponse); 行。

它可能会起作用...

最新更新