2009-07-30 15 views
0

私はMac用Googleツールボックスで提供されている単体テストツールを使用しており、NSURLConnectionsを含むコードをユニットテストしたいと考えています。私がこれをやりたいと思えば、私自身のNSRunLoopをセットアップする必要があると思います。単体テストNSURLConnectionでRunLoopを正しく設定するにはどうすればよいですか?

このような実行ループを設定する適切な方法は何ですか?

答えて

0

私が考えることができる唯一の理由は、実際の非同期接続の機能テストを行いたい場合です。それはかなり壊れやすく、テストバンドルの速度が遅くなります。

より良いアプローチはconnection:didFinishLoading:(成功のための例)のように、NSURLConnection's delegate methodsのあなたの実装のユニットテストを書くと(エラーケース用)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 
    ... 
関連する問題