ご注意!!!この記事の情報は古くなっています。XCode6以降では XCTestExpectationを使う のが良いでしょう。 XCTestを用いて非同期処理のテストを書く場合、完了フラグを操作してwhile loopで回す方法がよく紹介されています。 XCTestで非同期ブロックのテストを書くより引用: // テスト実行完了フラグ __block BOOL isFinished = NO; [SNSUser loginWithBlock^(SNSUser* user, NSError* error) { XCTAssertNotNil(user, @"hoge"); XCTAssertNil(error, @"fuga"); // Blocksの中のテストが終わったら完了フラグをYESに isFinished = YES; }]; // 完了フラグがYESになるまで待機 while (