承诺的单元测试不起作用

Unit test with promise not working

我正在使用 mocha 来测试我的 api,问题是这个函数是异步的并且 在我从函数中获取结果之前调用的测试套件,我该如何克服这个问题?

我尝试像下面那样链接测试,这会引发错误 Empty test suite。

describe("Validations", function () {

    var validator = require('../utils/validator');
    var isValid = null;

    validator.validateJS()
        .then(function (args) {
            isValid = args;
        }).then(function(){
        it("init validations ", function () {
            expect(isValid).to.equal('valid1');
        });
    });

})

我最初的用法就像下面这样 if 调用它并在 answer(isValid) 来自承诺,知道吗?

describe("Validations", function () {

    var validator = require('../utils/validator');
    var isValid = null;



    validator.validateJS()
        .then(function (args) {
            isValid = args;

        }).done();

    it("init validations ", function () {
        expect(isValid).to.equal('valid1');
    });

})

使用 mocha 的 before()

describe("Validations", function () {

    var validator = require('../utils/validator');
    var isValid = null;

    before(function(done) {
        validator.validateJS()
        .then(function (args) {
            isValid = args;
            done();
        })
    })

    it("init validations ", function () {
        expect(isValid).to.equal('valid1');
    });
})