Tôi đang thử nghiệm một cuộc gọi không đồng bộ bằng XCTestExpectation.XCTestCase waitForExpectationsWithTimeout: handler: ném EXC_BAD_ACCESS khi kỳ vọng không được thực hiện
Mã sau hoạt động (thử nghiệm thành công) khi trình hoàn thànhHandler được thực hiện trước thời gian chờ 1 giây nhất định.
func test__async_call() {
// prepare
let sut = ClassToTest()
let expectation: XCTestExpectation = self.expectationWithDescription(nil)
// test
sut.methodToTestWithCompletionHandler() {() ->() in
expectation.fulfill()
}
// verify
self.waitForExpectationsWithTimeout(1, handler: nil)
}
Tuy nhiên, nếu completionHandler không được gọi, và do đó kỳ vọng không thực hiện, thay vì nhận được một thử nghiệm thất bại khi gọi waitForExpectationsWithTimeout tôi nhận được một EXC_BAD_ACCESS, mà không phải là rất tiện dụng vì điều này làm cho nó không thể để xem toàn bộ kết quả của bộ thử nghiệm.
Tôi làm cách nào để tránh điều này và bị lỗi kiểm tra bình thường?
Có lỗi tương tự khi tôi giả định tham số chặn trình xử lý 'lỗi' không bao giờ là' nil'. Trình xử lý thực sự được gọi là nó thành công hay thất bại. Vì vậy, bạn phải kiểm tra lỗi trong trường hợp đó. –
Đặt mô tả không khắc phục được sự cố cho tôi. Tôi đặt mô tả về tất cả những kỳ vọng của tôi nhưng đôi khi họ vẫn gặp sự cố do những kỳ vọng chưa được thực hiện. –