私は、mockwebserver を使用して、Android アプリのリクエストとレスポンスをモックしています。一連の 4 つのサービス コールを通過するログイン機能をテストしています。
- アクセストークンを取得する
- リダイレクト
- ユーザー情報を取得する (別のベース URL)
- 他のものを取得します (元のベース URL)
リダイレクトされた呼び出しの応答をモックしようとしています。これが私のコードです:
@Test
public void testSuccessfulLogin() throws Exception {
// Post
server.enqueue(new MockResponse()
.setResponseCode(HTTP_OK)
.setBody(getStringFromFile(getInstrumentation().getContext(), "access_token.json")));
// Redirect
server.enqueue(new MockResponse().setResponseCode(HTTP_MOVED_TEMP));
// GET user info
server.enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(getStringFromFile(getInstrumentation().getContext(), "userinfo.json")));
// GET some other stuff
server.enqueue(new MockResponse().setResponseCode(HTTP_OK)
.setBody(getStringFromFile(getInstrumentation().getContext(), "sts.json")));
// Init call
loginWithoutWaiting(Data.serviceLoginUsername, Data.serviceLoginPassword);
// Debug (need to loop 4 times to get all 4 call paths)
RecordedRequest request = server.takeRequest();
request.getPath();
}
リダイレクト コードでテストが失敗します。ログイン。ここでいくつかのヒントを見つけましたが、何が起こっているのか完全には理解していないため、現時点では機能させることができません。