Тестирование асинхронных обратных вызовов с жасмином

Я использую Жасмин 2.1. Я пытаюсь использовать Jasmine 2.1 для тестирования модуля. Один из моих модулей имеет функцию, которая выполняет код асинхронно. Мне нужно проверить результат функции, когда приложение будет завершено выполнение. Есть ли способ сделать это? В настоящее время мой модуль выглядит так:

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;

Я пытаюсь проверить мой модуль с помощью следующего:

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

Очевидно, что тест не ожидает выполнения. Как проверить асинхронную функцию, выполняемую через Jasmine? Кроме того, правильно ли я использую переменную состояния? Я заблудился в асинхронном стеке и не уверен, где я могу использоватьthis».

Ответы на вопрос(1)

Ваш ответ на вопрос