Тестирование асинхронного модуля iOS (waitForExpectations failing) в xCode 8 / Swift 3

Я обновляю свой Cocoapod, который я разработал для использования Swift 3. До того, как я обновился, все мои асинхронные модульные тесты работали отлично. Но теперь, после обновления, каждый из них сразу же терпит неудачу, и я понятия не имею, почему. Вот что каждый из них структурирован как:

override func setUp() { super.setUp() validationExpectation = expectation(description: "Validation") } . . . func testSymbolRequest(){ _ = MyCocoapod.makeSymbolRequest(symbol: "ABC", success: { (symbolObject) in self.validationExpectation.fulfill() XCTAssert(true) }) { (error) in self.validationExpectation.fulfill() XCTFail(error.description) } waitForRequestToFinish() } . . . func waitForRequestToFinish(){ waitForExpectations(timeout: 60.0) { (error) in if let error = error { XCTFail(error.localizedDescription) } } } 

Функция waitForExpectations не ждет вообще. Он сразу же перестает быть вызванным. Я также подтвердил, что это не имеет никакого отношения к моему фактическому сетевому коду, и запросы отлично работают в моем примере проекта Cocoapod. Я использую Alamofire. Я не думаю, что это проблема, но я подумал, что это стоит упомянуть. Сообщение об ошибке, которое распечатывается, является «неизвестной ошибкой».

One Solution collect form web for “Тестирование асинхронного модуля iOS (waitForExpectations failing) в xCode 8 / Swift 3”

Если вы пытаетесь протестировать свой CocoaPod, который вы разрабатываете, по какой-то причине целевая цель тестирования по умолчанию, которую он создает, заставляет функцию waitForExpectations () работать неправильно для этой целевой цели тестирования. Я смог заставить его, наконец, работать, выполнив следующие шаги:

  1. Удалить текущую цель тестирования
  2. Создать новую цель тестирования
  3. Запустите установку pod и убедитесь, что файл pod обновлен соответствующим образом.

После этих шагов я смог получить waitForExpectations (), чтобы, наконец, работать в моих сетевых запросах.

  • Xcode Ui-automation - Тест не работает на физическом устройстве
  • Автоматическое тестирование уведомлений с помощью XCTest
  • Как проверить UIButton?
  • Cryptic NSInternalInconsistencyException при выполнении модульных тестов в Xcode 9 GM
  • Импорт XCTest в динамическую структуру
  • Как выбрать элемент представления выбора в тесте iOS UI в Xcode?
  • Тест XCTest терпит неудачу, когда тестовый пример «не завершился», когда я NSLog из тестового примера
  • AFNetworking 2.0 и Unit Test
  • XCTest ожидает вызова метода с быстрым
  • Можно ли запускать тесты XCTest в приложении iOS?
  • Почему я должен использовать отдельную тестовую цель для запуска XCTests и как мне это сделать?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.