IOS:未执行使用dispatch\u async的单元测试
我已经编写了一个类似于下面代码的脚本。我将断点保留在“dispatch\u async”中,但它不会被执行。这里可能有什么问题IOS:未执行使用dispatch\u async的单元测试,ios,swift,unit-testing,xctest,xctestexpectation,Ios,Swift,Unit Testing,Xctest,Xctestexpectation,我已经编写了一个类似于下面代码的脚本。我将断点保留在“dispatch\u async”中,但它不会被执行。这里可能有什么问题 dispatch_async(dispatch_get_main_queue()) { let array = response!.allObjects as! [NSArray] XCTAssertNotEqual(array.count, 0, testPassed); self.waitForExpectationsWithTime
dispatch_async(dispatch_get_main_queue()) {
let array = response!.allObjects as! [NSArray]
XCTAssertNotEqual(array.count, 0, testPassed);
self.waitForExpectationsWithTimeout(10, handler: { (error: NSError?) -> Void in
if(error != nil) {
XCTFail("Failed with error: \(error)
}
})
}
这种
dispatch\u async
在单元测试中没有意义。单元测试正在主队列上运行。在单元测试完成之前,它不会释放队列来运行另一个块,此时运行这个块已经太晚了
如前所述,唯一有意义的方法是完全删除
dispatch\u async
。你在主线上。只需执行所需的代码。感谢Rob的快速回复。当我删除dispatch_async时,单元测试脚本正在崩溃。我在“”中提出了一个问题。不确定是什么导致了这次车祸。。。如果我执行一个测试函数,它就可以正常工作。但如果我为整个项目运行测试脚本(将近1000个测试),它就会崩溃。