Jasmin 2.0, wie zu warten Echtzeit vor dem ausführen einer Erwartung
Ich versuche zu testen, die postMessage-API gibt es eine leichte Verzögerung, bevor die Nachricht erhalten, ich kann nicht laufen, Erwartung, direkt nach dem senden einer Nachricht.
In jasmine 1.3, die ich verwendet, um wait() ein paar Millisekunden vor der Ausführung von Erwartung und das funktionierte gut. Aber mit Jasmin-2.0 wait() ist veraltet und es scheint jetzt, dass alles innerhalb eines setTimeout nicht laufen zu bekommen, es sei denn, done() aufgerufen, die Hexe in meinem Fall nicht schneiden Sie es, wie ich eigentlich warten wollen, Echtzeit, bevor die Ausführung meiner Erwartung..
Nicht sicher, ob das alles Sinn, wenn es nicht, ich würde gerne einige Hinweise, wie könnte ich dies angehen.
Danke!
Sind Sie mit karma oder SpecRunner.html?
Was Sie mit, um Ihre Ajax-Aufrufe?
Ich bin mit testem zum ausführen von tests, ich bin nicht das testen einer ajax-Aufruf, aber die postMessage-API. Von dem moment an, wenn Sie eine Nachricht mit Hilfe des post-Nachricht und in dem moment wird die Nachricht empfangen, ist eine kleine Verzögerung, wie 1,2 ms
InformationsquelleAutor silkAdmin | 2014-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt zu warten, die eine Anzahl von Millisekunden, hat Jasmin Haken zu warten, bis eine Funktion gibt. Auf dieser Seite hat einige gute Beispiel, und ich habe kopiert man hier auf eine bestimmte Art und Weise testen ajax callbacks. Fügen Sie einfach ein Spion, wie ein Rückruf, um Ihre Funktion und warten Sie, bis das callback ausgeführt werden soll.
EDIT:
Da Sie testen wollen, dass Ihre Anwendung eine bestimmte callback, können Sie ersetzen Sie einfach das callback mit einem Spion, anstatt einen neuen zu erstellen, wie ich es Tat.
Jasmin 2.0 Hinzugefügt "fertig" callback-Stil, so dass Sie sollten in der Lage sein, etwas zu tun wie: (habe ich noch nicht getestet, die syntax, aber hoffentlich ein guter Anfang)
Ich bearbeitet die post, die einige zusätzliche info - funktioniert diese Hilfe?
auf der Basis der Informationen, die ich denke, JeffStorey Ansatz sieht gut aus. Ich bin mit jasmine 2.0. und ich habe waitsFor verfügbar
Ja der Teil nach dem edit ist richtig. Dank
InformationsquelleAutor Jeff Storey
Diese funktioniert bei mir:
Den beforeAll Funktion zuerst aufgetreten ist, aber es wird am Ende, wenn Sie rufen Sie das getan callback-Funktion. Also, wenn Sie setTimeout-Funktion mit 5000, es wartet 5000 Millisekunden, bevor Sie fortfahren.
InformationsquelleAutor sidanmor