如果我使用 Mocha 编写异步测试,我需要做的就是在测试函数上指定 done 参数:
test('foo', function (done) {...});
我的问题是:摩卡如何知道是否完成了?
测试函数的定义应该是这样的
function test(title, fn) {...};
摩卡如何检查fn?
它使用.length
测试函数的属性。
为了说明,在 Node REPL 中试试这个:
> (function() {}).length
0
> (function(done) {}).length
1
这是发生此检查的源代码中的实际行:
this.async = fn && fn.length;