Ios 多个预期会导致waitForExpectationsWithTimeout崩溃
下面是我正在使用XctestExpection在Xcode中测试的异步函数Ios 多个预期会导致waitForExpectationsWithTimeout崩溃,ios,objective-c,xcode,asynchronous,xctestexpectation,Ios,Objective C,Xcode,Asynchronous,Xctestexpectation,下面是我正在使用XctestExpection在Xcode中测试的异步函数 -(void)syncData:(void (^)(NSString *type, NSError *error))completionBlock { [self fetchAWithCompletionBlock:^ { completionBlock(@"a",nil); }]; [self fetchBWithCompletionBlock:^ { completionBlock(@"b",nil
-(void)syncData:(void (^)(NSString *type, NSError *error))completionBlock {
[self fetchAWithCompletionBlock:^ {
completionBlock(@"a",nil);
}];
[self fetchBWithCompletionBlock:^ {
completionBlock(@"b",nil);
}];
[self fetchCWithCompletionBlock:^ {
completionBlock(@"c",nil);
}];
}
为了测试代码,我创建了3个期望值,等待每个异步调用完成
[appDelegate syncData:^(NSString *type, NSError *error) {
if ([type isEqualToString:@"a"]) {
[expectation1 fulfill];
}
if ([type isEqualToString:@"b"]) {
[expectation2 fulfill];
}
if ([type isEqualToString:@"c"]) {
[expectation3 fulfill];
}
}];
当我使用默认值等待期望实现时
[self waitForExpectationsWithTimeout:60 handler:^(NSError *error) {}
但是这会导致SIGABRT出现以下错误:***在-[XCTestExpectation fulfill],/Library/Caches/com.apple.xbs/Sources/XCTest\u Sim/XCTest-9530/XCTestFramework/Classes/XCTestCase+AsynchronousTesting.m:450中断言失败
我已经使用
dispatch\u groups
成功地测试了该功能,并且效果良好。但无法理解为什么XTestExpection会引发多个期望的异常情况。对此有任何更新吗?即使是我也面临着这样的问题:您的方法-(void)syncData:(void(^)(NSString*type,NSError*error))completionBlock
正在执行它的completionBlock
不止一次(3次)。-waitForExpectationsWithTimeout:
将等待所有的期望都得到满足(在本例中为3次)。对此有任何更新吗?即使是我也面临着这样的问题:您的方法-(void)syncData:(void(^)(NSString*type,NSError*error))completionBlock
正在执行其completionBlock
不止一次(3次)。-waitForExpectationsWithTimeout:
将等待所有期望得到满足(在本例中为3次)。