我有一个简单的管理器对象,并在 kiwi 中使用模拟,我想检查当我调用 [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];
});
最佳答案
试试这个:
[[(NSObject*)mockDownloader shouldEventually] receive:@selector(downloadPOIsNear:completionBlock:)];
如果需要,您还可以使用shouldEventuallyBeforeTimingOutAfter(seconds)
。
关于ios - mock 期望和中央调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635492/