0
私はMac用Googleツールボックスで提供されている単体テストツールを使用しており、NSURLConnectionsを含むコードをユニットテストしたいと考えています。私がこれをやりたいと思えば、私自身のNSRunLoopをセットアップする必要があると思います。単体テストNSURLConnectionでRunLoopを正しく設定するにはどうすればよいですか?
このような実行ループを設定する適切な方法は何ですか?
私はMac用Googleツールボックスで提供されている単体テストツールを使用しており、NSURLConnectionsを含むコードをユニットテストしたいと考えています。私がこれをやりたいと思えば、私自身のNSRunLoopをセットアップする必要があると思います。単体テストNSURLConnectionでRunLoopを正しく設定するにはどうすればよいですか?
このような実行ループを設定する適切な方法は何ですか?
私が考えることができる唯一の理由は、実際の非同期接続の機能テストを行いたい場合です。それはかなり壊れやすく、テストバンドルの速度が遅くなります。
より良いアプローチは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
...