1
我需要在运行test()
方法之前执行多个调用。我有一个完成块,我正在使用waitForExpectations()
。由于我使用了一个计数器,因此有多个异步调用。只有当计数器达到呼叫次数时,我才让expectation.fulfill()
发生。在XCTestCase的setUp()中等待多个异步调用
override func setUp() {
super.setUp()
let exp = expectation(description: "waitForSetUp")
var counter = 0
// Issue an async request
self.addEventToCalendar(title: "Test1", description: "Description test1", startDate: NSDate().addingTimeInterval(-36000), endDate: NSDate()){(success, error) in
if (success) && (error == nil) {
counter = counter + 1
if(counter == 2){exp.fulfill()}
}
}
self.addEventToCalendar(title: "Test2", description: "Description test2", startDate: NSDate(), endDate: NSDate().addingTimeInterval(36000)){(success, error) in
if (success) && (error == nil) {
counter = counter + 1
if(counter == 2){exp.fulfill()}
}
}
waitForExpectations(timeout: 40, handler: nil)
}
这种结构不起作用。有时在调用返回之前运行test()
方法(并非总是)。
我该如何让setUp()
等待返回多个异步调用?
您是否尝试过实施处理程序并检查可能的错误? – user3581248