运行异步测试时出错

时间:2016-07-20 10:46:57

标签: javascript node.js unit-testing promise mocha

我使用以下代码作为mocha测试,我得到错误""之前"挂钩失败"

我使用之前的活动,但不知道我在这里做错了什么,任何想法? 当我把BP放在JSON.parse上时调试它不会在...之后停止行。

describe("Validations", function () {
  before(function (done) {

    var valid = require('../utils/valid');

    _provideConfig()
        .then(function (config) {
            isValidURL = valid.url(config, "test2")
            done();
        }).done();


  });


  it("Validate URL ", function () {
    expect(isValidURL).to.be.true;
  });


});


_provideConfig = function () {

  return new Promise(function (resolve, reject) {
    var configJSON = {
        "providers": [
            {
                "replace": {
                    "path": "cmd1",
                    "inc": "upd"
                },
                "save": {
                    "path": "test2",
                    "inc": "upd2"
                }
            }
        ]
    };

    var config = JSON.parse(configJSON);
    console.log(config);
    resolve(config);
});

1 个答案:

答案 0 :(得分:0)

您必须删除done回调并返回承诺。

before(function () {

  var valid = require('../utils/valid');

  return _provideConfig()
    .then(function (config) {
        isValidURL = valid.url(config, "test2");
    });


});

当它在文档中说 Mocha 支持promises时,这意味着你必须返回一个promise,以便Mocha可以处理它。