OHTTPS + AFNetworking высмеивает реакцию отказа

В настоящее время я использую OHTTPStub, чтобы высмеивать ответы на мои вызовы AFNetworking. Вызовы AFNetworking возвращают либо успешный, либо ошибочный ответ.

Если я создаю заглушку с использованием метода responseWithJSONObject, который является единственным примером, представленным или обсужденным в отношении OHTTPStubs, то всегда выполняется блок успеха моих вызовов AFNetworking.

Итак, какой метод мне нужно вызвать, чтобы выполнить блок сбоя моих методов AFNetworking.

Я уже попробовал метод "responseWithError" OHTTPStubs, который не вызывает ни блок успеха, ни блок сбоя.

1 ответ

Попробуйте добавить это до того, как ваш запрос будет сделан.

NSDictionary *infoDictionary = @{ NSLocalizedFailureReasonErrorKey: @"Localized failure reason", NSLocalizedDescriptionKey: @"Localized description"};

NSError *error = [NSError errorWithDomain:@"YourDomainName" code:444 userInfo:infoDictionary];

[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { return YES; } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { return [OHHTTPStubsResponse responseWithError:error]; }];

Это заглушит все запросы и возвратит ответ с кодом состояния 444. Документация для допустимых кодов состояния AFNetworking показывает, что AFNetworking соответствует RFC 2616. В документации RFC 2616 сказано, что коды ошибок 400-499 должны использоваться для ошибок клиента и 500-599 для ошибок сервера. Это означает, что любой ответ, полученный AFNetworking с кодом состояния 400-599, выполнит блок отказа.

Другие вопросы по тегам