Как правильно настроить RunLoop для того, чтобы провести модульное тестирование NSURLConnection? - PullRequest
0 голосов
/ 30 июля 2009

Я использую инструменты модульного тестирования, представленные в Google Toolbox для Mac, и хочу провести модульное тестирование некоторого кода, включающего NSURLConnections. Я считаю, что мне нужно настроить свой собственный NSRunLoop, если я хочу это сделать.

Как правильно настроить такой цикл выполнения?

1 Ответ

0 голосов
/ 09 июля 2010

Единственная причина, по которой я могу подумать, это сделать, если вы хотите выполнить функциональную проверку фактического асинхронного соединения. Это будет довольно хрупким и замедлит ваш тестовый пакет.

Лучшим подходом является написание модульных тестов ваших реализаций методов делегата NSURLConnection , например connection: didFinishLoading: (для случаев успеха) и connection: didFailWithError: (для случаев ошибки)

Обычно я устанавливаю примерные значения ответов и проверяю, что мой делегат обрабатывает их правильно. Например:

    NSString *responseJSON = @"{\"remove\": [123,432], \"new\": [1,2]}";
    NSData *responseBytes = [responseJSON dataUsingEncoding:NSUTF8StringEncoding];

    // in requestHandler, data would have been set by calls to connection:didReceiveData:
    [requestHandler setData:responseBytes];

    [requestHandler connectionDidFinishLoading:nil];

    // set expectations here for what you'll do with the response
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...