Testen von Asynchronen Callbacks mit Jasmin

Bin ich mit Jasmin 2.1. Ich bin versucht, Jasmin 2.1 um module zu testen. Eines meiner Module hat eine Funktion, die ausgeführt wird, code asynchron. Ich muss noch getestet werden, das Ergebnis der Funktion, wenn die app fertig ist ausführen. Gibt es eine Möglichkeit, dies zu tun? Derzeit ist mein Modul sieht so aus:

var otherModule = require('otherModule');
function MyModule() {
}

MyModule.prototype.state = '';
MyModule.prototype.execute = function(callback) {
  try {
    this.state = 'Executing';
    var m = new otherModule.Execute(function(err) {
      if (err) {
        this.state = 'Error';
        if (callback) {
          callback(err);
        }
      } else {
        this.state = 'Executed';
        if (callback) {
          callback(null);
        }
      }
    });
  } catch (ex) {
    this.state = 'Exception';
    if (callback) {
      callback(ex);
    }
  }
};

module.exports = MyModule;

Versuche ich zu testen, mein Modul mit dem folgenden:

var MyModule= require('./myModule');
describe("My Module", function() {
  var myModule = new MyModule();
  it('Execute', function() {
    myModule.execute();
    expect(myModule.state).toBe('Executed');
  });
});

Klar, der test ist nicht die Erwartung der Ausführung auftreten. Wie kann ich testen, eine asynchron ausgeführte Funktion über Jasmin? Darüber hinaus bin ich mit dem Status-variable, richtig? Ich verirre mich in der asynchronen stack und ich bin unsicher, wo ich verwenden kann 'this'.

InformationsquelleAutor JQuery Mobile | 2014-12-07

Schreibe einen Kommentar