【问题标题】:How does Mocha know that done was specified?Mocha 怎么知道 done 被指定了?
【发布时间】:2013-04-07 20:52:12
【问题描述】:

如果我使用 Mocha 编写异步测试,我需要做的就是在测试函数上指定 done 参数:

test('foo', function (done) {...});

我的问题是:Mocha 怎么知道 done 是否给出?

测试函数的定义应该是这样的

function test(title, fn) {...};

Mocha 如何检查 fn?

【问题讨论】:

    标签: node.js tdd mocha.js


    【解决方案1】:

    它在测试函数上使用.length 属性。

    为了说明,在 Node REPL 中试试这个:

    > (function() {}).length
    0
    > (function(done) {}).length
    1
    

    这是实际发生此检查的line in the source

    this.async = fn && fn.length;
    

    【讨论】:

    • 太好了,谢谢!我不知道函数上存在这样的属性:-)
    • 没问题。该检查发生在 fn 参考上。
    猜你喜欢
    • 2011-12-16
    • 2019-10-09
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多