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, выполнит блок отказа.