0

バックエンドの応答をテストするために AFHTTPClient でテストを行っています。

__block id testedResponseObject = nil;
[client getPath:path parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    testedResponseObject = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    testedResponseObject = nil;
}];
[client.operationQueue waitUntilAllOperationsAreFinished];

STAssertNotNil(testedResponseObject, @"");

これに関する問題は、すべての操作が完了するのを待つが、dispatch_get_main_queue() にスケジュールされるため、成功ブロックを実行しないことです。dispatch_get_main_queue() にメイン キューからのブロックを終了するように指示する方法はありますか?

4

1 に答える 1

1

に依存する代わりに、 (または任意のプロパティ) に直接completionBlockアクセスできます。responseData

NSURLRequest *request = [client requestWithMethod:@"GET" path:path parameters:nil];
AFHTTPRequestOperation *operation = [client HTTPRequestOperationWithRequest:request success:nil failure:nil];
[client enqueuHTTPRequestOperation:operation];
[client.operationQueue waitUntilAllOperationsAreFinished];

STAssertNotNil(operation.responseData, @"");
于 2013-05-29T16:25:51.620 に答える