此代码使我的 Mocha 测试顺利通过:
before(done => {
mockgoose
.prepareStorage()
.then(() => mongoose.connect('mongodb://example.com/TestingDB'))
.then(done)
})
it('passes', done => done())
但是删除 before
block 中的大括号会导致错误:
before(done =>
mockgoose
.prepareStorage()
.then(() => mongoose.connect('mongodb://example.com/TestingDB'))
.then(done)
)
it('passes', done => done())
1) "before all" hook
0 passing (2s)
1 failing
1) "before all" hook:
Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.
at process._tickCallback (internal/process/next_tick.js:109:7)
有人知道为什么吗?如果需要更多背景信息,我可以答应。
最佳答案
它就在那里说,您之前没有返回任何内容,您只是使用 done
来指定任务何时完成。现在你正在返回一个 Promise
(我假设的 mockgoose 调用的结果),这让 Mocha 感到困惑。
关于javascript - Mocha before 函数 - 没有大括号错误的 lambda;带有花括号的 lambda 可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43313107/