承诺的单元测试不起作用
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');
});
})
我正在使用 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');
});
})