jasmine.js attendre() ne fonctionne pas à l'intérieur d'un rappel asynchrone

Je suis de se familiariser avec le Jasmin (http://pivotal.github.com/jasmine/) et a trouvé quelque chose d'assez déroutant:

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);
});

Échoue comme prévu.

Toutefois, le déplacement du attendre appeler à l'intérieur de la fonction de rappel:

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);
  });
});

En quelque sorte de passe :O

Après un peu de débogage:
l'api.sendGhostRequest() est asynchrone requête ajax, et le jasmin se précipite passé avant que la requête est terminée.

D'où la question:

Comment puis-je obtenir jasmin attendre pour l'ajax d'exécution avant de vérifier le résultat du test?

  • Avec le Jasmin 2.0 vous suffit de l'appeler("desc",function(done){... done(); ...}). Il suffit de dire, parce que ce fil est élevé dans les résultats de google 🙂