0

我有一个简单的管理器对象,并在猕猴桃中使用模拟,我想检查当我调用[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];
    });
4

1 回答 1

1

尝试这个:

[[(NSObject*)mockDownloader shouldEventually] receive:@selector(downloadPOIsNear:completionBlock:)];

shouldEventuallyBeforeTimingOutAfter(seconds)如果需要,您也可以使用。

于 2013-05-19T15:22:23.750 回答