javascript - Mocha before 函数 - 没有大括号错误的 lambda;带有花括号的 lambda 可以工作

标签 javascript node.js mocha.js mockgoose

此代码使我的 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/

相关文章:

javascript - 使用 Javascript 计算并显示文本框中的字符数

JavaScript:当用户用鼠标选择文本时观察文本选择长度的变化

javascript - NodeJS 中的 Promise 和函数没有返回任何内容

javascript - MeteorJS 中的依赖管理

javascript - 如何在运行 Mocha 测试之前应用 jadeify 变换?

javascript - 如何防止 mocha 以状态 1 退出进程

javascript - 安装Carrot Creative的分享按钮?

javascript - 如何在reactJS状态下动态设置对象属性的值?

javascript - AssertionError : expected { Object (driver, name, ...) } 拥有属性 '_id'

javascript - 在没有 ES6 语法和 yield 的情况下使用 mocha、Nightmare.js 进行测试