iOS Тестирование производительности асинхронного метода
Я пытаюсь написать тест производительности для метода запроса API. Когда я запускаю его без measureBlock, он работает нормально, но когда я использую его в качестве теста производительности, я получаю сообщение об ошибке:
*** Ошибка подтверждения в -[Performance waitForExpectationsWithTimeout:handler:], /SourceCache/XCTest_Sim/XCTest-7701/XCTestFramework/Classes/XCTestCase+AsynchronousTesting.m:236 /Users/iphonetest03/Desktop/shootr-ios/Tests/Performance.m:42: ошибка: -[Performance testPerformanceExample]: сбой: обнаружен "NSInternalInconsistencyException", "нарушение API - вызов сделан для ожидания без каких-либо ожиданий".
Любые предложения приветствуются. Благодарю. Вот мой код:
@interface Performance : XCTestCase
@property (nonatomic,strong) XCTestExpectation *expectation;
@property (nonatomic) BOOL serverResponse;
@end
@implementation Performance
- (void)setUp {
[super setUp];
self.expectation = [self expectationWithDescription:@"Server response"];
}
- (void)tearDown {
[super tearDown];
}
- (void)testPerformanceExample {
[self measureBlock:^{
[ShotQueueManager singleton].sendingrequestor = self;
[[ShotQueueManager singleton] createShotQueueWithComment:@"iOS Shot creation performance test." andPhotoBinary:nil shotParent:nil userNameParent:nil andDelegate:self];
[self waitForExpectationsWithTimeout:25.0 handler:^(NSError *error) {
if (error) {
NSLog(@"Timeout Error: %@", error);
}else{
XCTAssert(self.serverResponse);
}
}];
}];
}
- (void)createShotResponseWithStatus:(BOOL)status andError:(NSError *)error {
if (status && !error){
self.serverResponse = YES;
[self.expectation fulfill];
}
}