Prueba de unidad asíncrona de iOS (waitForExpectations failing) en xCode 8 / Swift 3

Estoy actualizando mi Cocoapod que desarrollé para usar Swift 3. Antes de actualizar, todas mis testings de unidades asíncronas funcionaban perfectamente. Pero ahora, después de la actualización, cada uno de ellos inmediatamente falla y no tengo idea de por qué. Aquí está lo que cada uno está estructurado como:

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) } } } 

La function waitForExpectations no está esperando en absoluto. Inmediatamente falla después de ser llamado. También he confirmado que no tiene nada que ver con mi código de networking real y que las requestes funcionan perfectamente en mi proyecto de ejemplo Cocoapod. Estoy usando Alamofire. No creo que ese sea el problema, pero pensé que valdría la pena mencionarlo. El post de error que se imprime es "error desconocido".

Si está intentando probar su CocoaPod que está desarrollando, por alguna razón, el objective de testing pnetworkingeterminado que crea hace que la function waitForExpectations () no funcione correctamente para ese objective de testing en particular. Pude lograr que finalmente funcione al hacer estos pasos en order:

  1. Eliminar el objective de testing actual
  2. Crear un nuevo objective de testing.
  3. Ejecute una installation de pod y asegúrese de que el file de pod se actualiza en consecuencia.

Siguiendo estos pasos, pude conseguir que waitForExpectations () finalmente funcione dentro de mis requestes de networking.