2013-04-07 4 views
3

Si j'écris un test asynchrone en utilisant Mocha, tout ce que je dois faire est de spécifier le paramètre fait sur la fonction de test:Comment Mocha sait-il que cela a été fait?

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

Ma question est la suivante: Comment savoir si Mocha fait était donné?

La définition de la fonction de test doit être quelque chose comme

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

Comment vérifier Mocha fn?

Répondre

7

Il utilise la propriété .length dans la fonction de test.

Pour illustrer, essayez ceci dans le REPL Noeud:

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

Voici le line in the source réelle où ce contrôle se produit:

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

Grand, merci! Je ne savais pas qu'une telle propriété existe sur les fonctions :-) –

+0

Pas de problème. Cette vérification se produit sur la référence 'fn'. – jmar777

Questions connexes