1

私は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はありません。

誰かが似たようなことを試しましたか?

4

1 に答える 1

0

Robolectric.addPendingHttpResponse(httpResponse); を配置します。androidの接続メソッドを呼び出す前の行。

それはうまくいくかもしれません...

于 2014-02-20T11:21:37.527 に答える