Я использую 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();
}
Мой тест не работает в коде перенаправления. Я не могу залогиниться. Я нашел несколько подсказок здесь, но я не совсем понимаю, что происходит, поэтому пока не могу заставить это работать.