[aPOIManager fetchNear:location]
私は単純なマネージャー オブジェクトを持っており、キウイでモックを使用して、それを呼び出したときにそのダウンローダーを呼び出していることを確認したいと考えてdownloadPOIsNear:completionBlock:
います。
グランドセントラルディスパッチ内でダウンローダーに呼び出しをディスパッチすることを決定するまで、すべてがうまくいきました。
呼び出しが非同期であるため、テストは失敗します。Kiwi には、ある値を非同期的にチェックする機能がありますが、非同期呼び出しをチェックする機能はありません。
ここに私のテストの一部があります:
it(@"should call the proximity downloader", ^{
CLLocation *location = [[CLLocation alloc] initWithLatitude:1.0f longitude:1.0f];
id<RMProximityDownloader> mockDownloader =
[KWMock mockForProtocol:@protocol(RMProximityDownloader)];
[[(NSObject*)mockDownloader should] receive:@selector(downloadPOIsNear:completionBlock:)];
RMPOIManager *aPOIManager = [[RMPOIManager alloc] initWithDownloader:mockDownloader];
[aPOIManager fetchNear:location];
});