Тестирование асинхронного модуля 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 (), чтобы, наконец, работать в моих сетевых запросах.

  • Не удалось загрузить тестовый комплект, поскольку непредвиденная ошибка
  • Слип слишком умный? Проверка типа объекта при тестировании с помощью XCTest
  • Как запустить «единственный тестовый пример» в XCTest?
  • Xcode 7 UI Testing: как отклонить ряд системных предупреждений в коде
  • Xcode 5.1 прерывает некоторые тесты
  • iOS: как запустить XCTest на устройстве?
  • как повернуть симулятор с помощью быстрого кода в xcode ui test
  • XCTest для существующего проекта
  • Как написать модульное тестирование асинхронного метода без завершения Блок в Obj C
  • Не удается запустить тесты с помощью XCTest
  • Когда источники приложения должны быть включены в тестовые цели?
  • Могу ли я проверить производительность одного раздела в моем приложении с помощью XCTest?
  • Interesting Posts

    Отладка основных данных __NSCFSet addObject исключение nil

    как передать свойства swift 3 urlsession didFinishDownloadingTo делегировать после загрузки фона?

    Полимер, не работающий на iOS, даже с полиполками

    Разница b / w imageNamed и imageWithContentsOfFile

    Каковы настройки шрифта по умолчанию, используемые в стилях UITableViewCell?

    Сохраняйте аудио и удаляйте видеопоток для AVPlayer, когда приложение переходит в фоновый режим

    Как я могу использовать несколько C ++-файлов в моем проекте, не компилируя каждый файл как C ++?

    Как дождаться завершения встроенной анимации UITableView?

    Как достичь четко выраженного повернутого UILabel?

    Ошибка команды Linker с ошибкой кода выхода 1 в проекте Xcode

    Неопределенные символы: "_OBJC_CLASS_ $ ошибка

    Objective-C, отмените очередь отправки, используя событие пользовательского интерфейса

    Проблемы с производительностью при использовании AVCaptureVideoDataOutput и AVCaptureAudioDataOutput

    Основные данные о местоположении файла Sqlite

    Объединение UIDatePicker с текстом или UIPickerView с датой?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.