Waitforexpectationswithtimeout Crash Bandicoot


Ich teste einen asynchronen Anruf mit XCTestExpectation. Der folgende Code funktioniert (der Test ist erfolgreich), wenn der CompletionHandler vor dem angegebenen 1-Sekunden-Timeout ausgeführt wird. Allerdings, wenn die FertigstellungHandler nicht aufgerufen wird und daher die Erwartung nicht erfüllt ist, anstatt einen Testfehler beim Aufruf zu bekommen waitForExpectationsWithTimeout bekomme ich eine EXCBADACCESS, was nicht sehr praktisch ist, da dies unmöglich macht, die ganze Test Suite Ergebnisse zu sehen. Wie kann ich das vermeiden und einen normalen Testfehler bekommen, fragte am 21.12. 14 bei 15: 31Swift hat besondere Schwierigkeiten, den richtigen Ausnahmestreckpunkt zu zeigen, wenn die Schließungen im gleichen Umfang vorhanden sind. Ive gesehen das gleiche Problem in einer XCTestCase, die dispatchafter verwendet und sogar durch die Ausnahme Breakpoint war die gleiche Zeile wie waitForExpectationsWithTimeout der Testfall war zum Absturz wegen eines Downcast auf einem Nil-Objekt. Ich weiß, das ist nicht dein Fall, aber wann immer dies geschieht, schlage ich vor, die Aussagen eine Zeile zu einer Zeit zu entfernen und den Test nach jedem Ausbau zu führen. Wenn der Test nicht abstürzt, hast du den Täter identifiziert. Dies ist leider die beste Option zum Zeitpunkt dieses Schreibens, wenn Swift einen Ausnahme-Breakpoint auf einer Linie zeigt, die keinen Sinn macht, vor allem die berüchtigte Linie 0 einer Klasse, die man in Crash-Reporting-Tools sehen könnte. Lassen Sie uns wissen, wenn Sie Ihren Absturz herausgefunden haben.

Comments