Насмешливые ожидания и Grand Central Dispatch
У меня есть простой объект менеджера, и, используя mocks в киви, я хочу проверить, когда я звоню [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];
});
1 ответ
Решение
Попробуй это:
[[(NSObject*)mockDownloader shouldEventually] receive:@selector(downloadPOIsNear:completionBlock:)];
Вы также можете использовать shouldEventuallyBeforeTimingOutAfter(seconds)
если нужно.