Mocha 测试需要一个 done() 来结束,然后说 "Resolution method is overspecified. Specify a callback *or* return a Promise; not both."
Mocha tests requires a done() to conclude, but then says "Resolution method is overspecified. Specify a callback *or* return a Promise; not both."
mocha 测试的一个非常烦人的问题。
如果我什么都不做,它会挂起,给我
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
如果执行 `Promise.resolve()。最后
Error: Resolution method is overspecified. Specify a callback or return a Promise; not both.
如果我 done()
就位。
为什么会这样,我该如何解决?
这是我的测试结果:
it('test my middleware' function (done) {
const req = MockRequest()
const res = MockResponse()
const next = (e) => {
if (e) {
return done()
}
try {
assert.ok(somethingThatPasses())
done()
} catch (err) {
done(err)
}
}
myMiddleware(req, res, next)
})
不确定这是否会帮助遇到同样问题的任何人,但我最终通过将 done()
移到回调之外,在调用 myMiddleware
之后使其正常工作。
不幸的是,我仍然不能 100% 确定最初的问题是什么。
mocha 测试的一个非常烦人的问题。
如果我什么都不做,它会挂起,给我
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
如果执行 `Promise.resolve()。最后
Error: Resolution method is overspecified. Specify a callback or return a Promise; not both.
如果我 done()
就位。
为什么会这样,我该如何解决?
这是我的测试结果:
it('test my middleware' function (done) {
const req = MockRequest()
const res = MockResponse()
const next = (e) => {
if (e) {
return done()
}
try {
assert.ok(somethingThatPasses())
done()
} catch (err) {
done(err)
}
}
myMiddleware(req, res, next)
})
不确定这是否会帮助遇到同样问题的任何人,但我最终通过将 done()
移到回调之外,在调用 myMiddleware
之后使其正常工作。
不幸的是,我仍然不能 100% 确定最初的问题是什么。