Saturday, 27 May 2017

Waitforexpectationswithtimeout Handler


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 dies vermeiden und bekomme einen normalen Testfehler gefragt 21. Dezember 14 um 15: 31 Ich versuche, eine asynchrone Anfrage mit XCTest zu testen und damit mit expectationWithDescription. Doch wenn waitForExpectationsWithTimeout aufgerufen wird, stürzt es sofort ab, ohne auch nur auf das Timeout zu warten. Ich habe sogar versucht, die Erfüllung Operation bald nach nur, um ein Timeout-Problem auszuschließen, aber es di keine Veränderung Dinge, die dies ist meine Funktion: Das gleiche Verhalten passiert in anderen Funktionen. Wenn ich die waitForExpectationsWithTimeout-Operation wegnehme und die ErwartungWithDescription-Operation behalte, stürzt es am Ende der Funktion ab. In beiden Fällen ist die Crash-Repot die folgenden: gefragt am 22. Juli 15 um 12:21 Ja, ich habe es tatsächlich setzen waitForExpectationsWithTimeout am Ende der Funktion wie angedeutet in der WWDC2014 Ich habe gerade angesehen und aus irgendeinem Grund alle Test richtig zu beheben. Der Crash scheint mit einigen Testfehlern verbunden zu sein, aber ich konnte nicht verstehen, wann dies geschieht. Jedenfalls ist meine Erfahrung, dass, wenn es keinen fehlgeschlagenen Test gibt es auch keinen seltsamen Absturz. Ich brauchte aber keinen Handler zu geben. Ich lege eine Antwort mit dem Arbeitscode ein. Ndash Fabrizio Bartolomucci Jul 22 15 at 21:27 Ich sah das spezifische Gespräch in WWDC14 und kam mit der folgenden Implementierung heraus: Es ist sehr ähnlich dem Original, aber für die Position des waitForExpectationsWithTimeout Befehls, das scheint entscheidend zu sein.

No comments:

Post a Comment