我在我的describe
有這樣的代碼:before(a)
。爲什麼Mocha的`before()`函數傳遞是否帶參數?
當a
看起來是這樣的:
function a() {
return chai.request(app)
...
.then(res => {
res.blah.should.blah;
return Promise.resolve();
});
}
...一切的偉大工程(這是一個非常快速的調用)
然而,當我做a
採取一些輸入變量:
function a(dummy, my_var) {
return chai.request(app)
... // use my_var here
.then(res => {
res.blah.should.blah;
console.log("finished!");
return Promise.resolve();
});
}
承諾永遠不會解決。兩種意見:
finished!
確實獲得正確輸出(立即)dummy
填充。
它填充了這一點:
function (err) {
if (err instanceof Error || toString.call(err) === '[object Error]') {
return done(err);
}
if (err) {
if (Object.prototype.toString.call(err) === '[object Object]') {
return done(new Error('done() invoked with non-Error: ' + JSON.stringify(err)));
}
return done(new Error('done() invoked with non-Error: ' + err));
}
if (result && utils.isPromise(result)) {
return done(new Error('Resolution method is overspecified. Specify a callback *or* return a Promise; not both.'));
}
done();
}
我不知道在哪裏,從準確的,但我並不需要它,這就是爲什麼我只是把它變成一個虛擬變量。
現在我懷疑這與它有關,但我想知道爲什麼我的解決方法不能在這裏實現這個訣竅。
我仍然希望使用before(a)
作爲默認情況,而不是my_var
未定義。當我真的想通過這個變量,我打算:
before(() => {
return a('my_content');
})
啓蒙的解釋。那太糟糕了......沒有向後兼容的方式來做我的改變。好吧。謝謝! – Kev