Mocha + RequireJS = Test AMD
J'ai du mal à connecter Moka de RequireJS en fonction de l'application, peut-être Vous serez en mesure de venir avec quelque chose :). Après de nombreuses heures quand j'ai essayé de charger les modules AMD et simplement de la console.journal de certaines 'tiré' info que le module a été chargé... rien dans les parages qui s'était passé - le programme terminé et imprimé quelques moka info.
var facade = requirejs(['../../public/js/scripts/widgets/widgets/article/main.js'],
function(mod) {
console.log('fired')
});
//run with: $ mocha -u tdd test.js --reporter spec
et que je suis venu avec l'idée de feu juste pour tester les rappels:
setTimeout((function() {
console.log('fired');
}), 5000);
//run with: $ mocha -u tdd test.js --reporter spec
n'ai pas de travail. Donc, finalement, j'ai couru à la fois avec
$ node test.js
et enfin il a travaillé. Donc, la question est que: Comment faire pour exécuter Moka test avec des rappels de la manipulation, comme ceux qui sont essentiels pour les tests?
source d'informationauteur Oskar Szura
Vous devez vous connecter pour publier un commentaire.
La façon dont vous le faites, moka ne va pas faire n'importe quoi avec votre fichier car il ne voit pas une suite de tests. RequireJS est prévue pour appeler la fonction de rappel mais moka ferme avant que cela ait une chance de se produire. Même avec le délai de votre exemple.
La suivante vous donne un exemple.
Fichier
test.js
:Fichier
foo.js
:Lorsque vous exécutez:
Vous verrez que le rappel est tiré et que le test passe.
Pour le bénéfice des gens qui lisent cette question et confus par l'utilisation de
suite
suiteSetup
test
... Moka prend en charge plusieurs interfaces. Le code ici est d'utiliser le TDD (interface de l'OP appelle Moka avec-u tdd
), qui exportesuite
suiteSetup
test
etc. Dans la BDD par défaut de l'interface, les équivalents sontdescribe
before
etit
respectivement.J'ai configuré liées standard pour l'utilisation de moka dans l'environnement de RequireJS. Il est peut-être pas exact ce que vous voulez, mais il peut être utile.
https://github.com/x2es/boilerplate-karma-mocha-chai-requirejs
Une note plus - en supposant que votre script placé dans "/public," il est logique de le tester dans le navigateur de l'environnement au lieu de nodejs. À cet effet, vous devriez regarder quelques test-coureur comme JsTestDriver (https://code.google.com/p/js-test-driver/) ou karma-runner (http://karma-runner.github.io/). Ou d'une autre...
Dans ciselée fournie dans le karma de la documentation (http://karma-runner.github.io/0.8/plus/RequireJS.html)
introduit lorsque nous force requirejs pour précharger toutes nécessaires spec-fichiers à l'aide de
Dans cet environnement, chaque spec-fichier doit être un régulier module RequireJS.
Exemple de test de spécification pour un tel environnement: