Тестирование асинхронного модуля 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. Я не думаю, что это проблема, но я подумал, что это стоит упомянуть. Сообщение об ошибке, которое распечатывается, является «неизвестной ошибкой».

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

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

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

  • Как написать модульное тестирование асинхронного метода без завершения Блок в Obj C
  • XCTest не работает при вызове
  • Что является альтернативой импорта @testable в Objective C
  • Xcode 7 UI Testing: как отклонить ряд системных предупреждений в коде
  • Какова цель метода setUp XCTestCase?
  • Как запустить единовременный код установки перед выполнением любого XCTest
  • Как сообщить приложению, что его работающие тесты Unit в чистом проекте Swift?
  • Xcode Ui-automation - Тест не работает на физическом устройстве
  • Xcode Framework: заголовок Umbrella для модуля 'Test' не включает заголовок 'NewTest.h'
  • XCTests не запускает приложение в симуляторе с перерывами
  • Настройте тестовый проект с помощью XCTest с двумя целевыми показателями для iOS и OSX и с помощью общих тестов модулей
  • Interesting Posts

    Google Play Services 8.4.0 разрывает Google Cloud Messaging для Android, если iOS также используется

    Как проверить, имеет ли приложение доступ к галерее телефона?

    Переключение настроек конфиденциальности приведет к урону приложения

    удаление данных из sqlite и tableview в iphone

    strong @property с __attribute __ ((NSObject)) для типа CF не сохраняется

    Идентификаторы объектов основных данных против постоянного идентификатора объекта

    Как загрузить MultipartFormData с помощью аутентификации с помощью Alamofire

    UIActivityViewController удаляет нижнюю часть

    Предыдущее содержимое повторно используемого UICollectionViewCell кратко отображается при повторном использовании ячеек в UICollectionView

    Сортировка результата NSFetchedResultsController на основе массива?

    приложение iOS "имеет активные утверждения за пределами допустимого времени – случайные сбои"

    Можно ли открыть приложение watchOS из приложения iOS?

    Как я могу сбросить изолированные приложения в приложении на iOS для тестирования?

    хранить и извлекать изображение в базу данных sqlite для iphone

    NSString из NSArray

    Давайте будем гением компьютера.