unit testing承诺不工作

即时通讯使用摩卡来testing我的API,问题是这个函数是asynchronous和testing套件之前,我从function获得resutls,我怎么能克服这个?

我尝试链接像下面的testing提出了一个错误空的testing套件。

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'); }); }); }) 

我最初的用法就像下面这个,如果是对它的调用,期望里面的答案(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'); }); }) 

使用摩卡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'); }); })