jasmine.js expect () funktioniert nicht in einem asynchronen Callback

Bin ich erste Bekanntschaft mit Jasmin (http://pivotal.github.com/jasmine/) und fand Sie etwas verwirrend:

it("should be able to send a Ghost Request", function() {
  var api = fm.api_wrapper;

  api.sendGhostRequest(function(response) {
    console.dir('server says: ', response);
  });

  expect(true).toEqual(false);
});

Ausfällt als erwartet.

Allerdings bewegt das erwarten Aufruf innerhalb der callback:

it("should be able to send a Ghost Request", function() {
  var api = fm.api_wrapper;

  api.sendGhostRequest(function(response) {
    console.dir('server says: ', response);
    expect(true).toEqual(false);
  });
});

Irgendwie geht :O

Nach einigem Debuggen:
api.sendGhostRequest() ist eine asynchrone ajax-request, und Jasmin vorbeirauscht, bevor die Anforderung beendet hat.

Daher die Frage:

Wie bekomme ich Jasmin zu warten, für die ajax-Ausführung vor der Feststellung das test-Ergebnis?

InformationsquelleAutor der Frage Val Redchenko | 2013-02-28

Schreibe einen Kommentar