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