【发布时间】:2013-04-07 20:52:12
【问题描述】:
如果我使用 Mocha 编写异步测试,我需要做的就是在测试函数上指定 done 参数:
test('foo', function (done) {...});
我的问题是:Mocha 怎么知道 done 是否给出?
测试函数的定义应该是这样的
function test(title, fn) {...};
Mocha 如何检查 fn?
【问题讨论】:
如果我使用 Mocha 编写异步测试,我需要做的就是在测试函数上指定 done 参数:
test('foo', function (done) {...});
我的问题是:Mocha 怎么知道 done 是否给出?
测试函数的定义应该是这样的
function test(title, fn) {...};
Mocha 如何检查 fn?
【问题讨论】:
它在测试函数上使用.length 属性。
为了说明,在 Node REPL 中试试这个:
> (function() {}).length
0
> (function(done) {}).length
1
这是实际发生此检查的line in the source:
this.async = fn && fn.length;
【讨论】:
fn 参考上。