Wednesday 25 October 2017

Waitforexpectationswithtimeout Crash Kurs


Ich versuche, eine asynchrone Anforderung mit XCTest zu testen und so mit expectationWithDescription zu verwenden. 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 22. Juli 15 um 12: 21 Ich hatte das gleiche Problem. Das Update für mich schien das Timeout-Intervall zu erhöhen. Ich hatte ursprünglich ein Timeout-Intervall von 1 und erhöhte es auf 5 nur um auf der sicheren Seite zu sein. Scheint jetzt gut zu funktionieren. Im nicht sicher, wie lange Ihr asynchroner Anruf dauert, oder wenn Sie sich ein längeres Timeout-Intervall als 1 leisten können, aber es ist ein Schuss wert. Antwortete am 24 November 14 um 20:14 Ich habe versucht, in 50 Fällen hat es geholfen. Sie können in Code sehen, den ich gepostet habe, dass async gerade dispatchafter ist, das 0,5s wartet. Am Ende neige ich die Erwartung nach Warteblock und mache alle Behauptungen auch nach Warteblock. Also passiert nichts beim Warten, sondern erfüllt. Ndash Micha Hernas Nov 25 14 at 11:18 Swift hat besondere Schwierigkeiten, den korrekten Ausnahmestreckpunkt zu zeigen, wenn Verschlüsse 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.

No comments:

Post a Comment