2013-04-07 131 views
3

如果我寫使用摩卡異步測試,所有我需要做的是指定的測試功能進行了參數:摩卡如何知道完成指定?

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

我的問題是:摩卡如何知道是否做過給出?

測試函數的定義應該是如

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

如何摩卡檢查FN?

回答

7

它使用測試功能上的.length屬性。

爲了說明這一點,試試這個在節點REPL:

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

這裏的實際line in the source哪裏此檢查:

this.async = fn && fn.length; 
+0

很好,謝謝!我不知道這樣的屬性存在於函數中:-) – 2013-04-07 20:58:24

+0

沒問題。該檢查發生在'fn'引用上。 – jmar777 2013-04-07 21:01:24