【问题标题】:Mocha before function - lambda without curly braces errors; lambda with curly braces worksMocha before function - 没有大括号错误的 lambda;带花括号的 lambda 有效
【发布时间】:2017-04-10 07:58:03
【问题描述】:

这段代码让我的 mocha 测试顺利通过:

before(done => {
  mockgoose
    .prepareStorage()
    .then(() => mongoose.connect('mongodb://example.com/TestingDB'))
    .then(done)
})

it('passes', done => done())

但删除 before 块中的花括号会导致错误:

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)

有人知道为什么吗?如果需要更多上下文,我可以提供。

【问题讨论】:

    标签: javascript node.js mocha.js mockgoose


    【解决方案1】:

    它就在那里说,你之前没有返回任何东西,你只是使用done 来指定任务何时完成。现在你返回一个Promise(我假设是 mockgoose 调用的结果),这让 mocha 感到困惑。

    【讨论】:

    • 啊,是的。通过使用没有花括号的 lambda,我有一个隐式返回!所以没有花括号,我返回了一个 Promsie。通过提供done,我还指定了一个回调。我将摆脱done 并继续我的快乐之路。谢谢!我是这个 Javascript 场景的新手 :)
    猜你喜欢
    • 2011-08-20
    • 2012-01-18
    • 2012-01-10
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多