升级后Mocha连简单的测试都跑不了这里是代码
const assert = require('assert');
it('should complete this test', function (done) {
return new Promise(function (resolve) {
assert.ok(true);
resolve();
})
.then(done);
});
我从 here 获取此代码
我知道它现在抛出异常 错误:解决方法被过度指定。指定回调 * 或 * 返回一个 Promise;不是两者都有。
但是如何让它工作呢?我不明白。我有
node -v 6.9.4
mocha -v 3.2.0
如何以新的正确格式运行这段代码?
最佳答案
放下
.then(done);
并将 function(done)
替换为 function()
你正在返回一个 Promise,所以调用 done 是多余的,正如它在错误消息中所说的那样
在旧版本中,您必须使用回调来处理这样的异步方法
it ('returns async', function(done) {
callAsync()
.then(function(result) {
assert.ok(result);
done();
});
})
现在您可以选择返回 Promise
it ('returns async', function() {
return new Promise(function (resolve) {
callAsync()
.then(function(result) {
assert.ok(result);
resolve();
});
});
})
但同时使用两者会产生误导 (例如参见 https://github.com/mochajs/mocha/issues/2407 )
关于node.js - 为什么我得到 "Error: Resolution method is overspecified"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761683/