Есть ли способ заставить Chai работать с асинхронными тестами Mocha?

Я запускаю некоторые асинхронные тесты в Mocha с помощью Browser Runner, и я пытаюсь использовать утверждения стиля ожидания Chai:

window.expect = chai.expect;
describe('my test', function() {
  it('should do something', function (done) {
    setTimeout(function () {
      expect(true).to.equal(false);
    }, 100);
  }
}

Это не дает мне обычное сообщение о неудачном утверждении, вместо этого я получаю:

Error: the string "Uncaught AssertionError: expected true to equal false" was thrown, throw an Error :)
    at Runner.fail (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3475:11)
    at Runner.uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3748:8)
    at uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3778:10)

Таким образом, очевидно, что он перехватывает ошибку, он просто не отображает ее правильно. Есть идеи, как это сделать? Думаю, я мог бы просто позвонить "сделано" с помощью объект ошибки, но тогда я теряю всю элегантность чего-то вроде Chai, и он становится очень неуклюжим...

79
задан Thomas Parslow 27 June 2012 в 22:43
поделиться