Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何正确设置RunLoop以对NSURLConnection进行单元测试?_Iphone_Unit Testing - Fatal编程技术网

Iphone 如何正确设置RunLoop以对NSURLConnection进行单元测试?

Iphone 如何正确设置RunLoop以对NSURLConnection进行单元测试?,iphone,unit-testing,Iphone,Unit Testing,我正在使用Google Toolbox for Mac中提供的单元测试工具,我想对一些涉及NSURLConnections的代码进行单元测试。我相信,如果我希望能够做到这一点,我需要设置自己的nsrunlop 设置这样一个运行循环的正确方法是什么?我认为这样做的唯一原因是如果您想对实际的异步连接进行功能测试。这将是非常脆弱的,并且会减慢测试包的速度 更好的方法是为实现编写单元测试,例如(针对成功案例)和(针对错误案例) 我通常设置示例响应值,并验证我的委托是否正确处理它们。例如: NSS

我正在使用Google Toolbox for Mac中提供的单元测试工具,我想对一些涉及NSURLConnections的代码进行单元测试。我相信,如果我希望能够做到这一点,我需要设置自己的nsrunlop


设置这样一个运行循环的正确方法是什么?

我认为这样做的唯一原因是如果您想对实际的异步连接进行功能测试。这将是非常脆弱的,并且会减慢测试包的速度

更好的方法是为实现编写单元测试,例如(针对成功案例)和(针对错误案例)

我通常设置示例响应值,并验证我的委托是否正确处理它们。例如:

    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
    ...