6

私は、mockwebserver を使用して、Android アプリのリクエストとレスポンスをモックしています。一連の 4 つのサービス コールを通過するログイン機能をテストしています。

  1. アクセストークンを取得する
  2. リダイレクト
  3. ユーザー情報を取得する (別のベース URL)
  4. 他のものを取得します (元のベース 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();
}

リダイレクト コードでテストが失敗します。ログイン。ここでいくつかのヒントを見つけましたが、何が起こっているのか完全には理解していないため、現時点では機能させることができません。

4

1 に答える 1