外部のWebサービスに依存して完了するOCUnitユニットテストケースを作成しました。これ自体が物議を醸していることは知っていますが、テストにWebサービスを含めたいと思っています(とにかく内部サーバーで実行されています)。
どうやら、SenTestCaseの一部として実行すると、NSURLConnectionの開始に失敗します。次の回線では接続がまったく開始されていません。
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
デリゲートメソッドは呼び出されません。実質的に同一のコードは、通常、OCUnitの外部で実行されます。
これを実行できないのは、OCUnitランタイム環境について何ですか?
リクエストが返される前にテストが完了するわけではありません。リクエストの非同期性を処理するためのNSConditionロックがあります。また、これらを削除して、実行ループで回転させてみました。テストケースは実行を継続しますが、NSURLConnectionは開始されません。
可能であれば、テストを別の単体テストフレームワークに移行したくありません。