J’ai une application Node qui fonctionne et j’essaie d’append des tests Mocha, mais j’obtiens quelques erreurs d’importation.
Ceci est ma structure de fichier:
package.json index.js src/ chart.js test/ test_chart.js
Voici à quoi ressemble mon fichier chart.js
:
global.jQuery = require('jquery'); global.$ = global.jQuery; require('typeahead'); require('bloodhound'); var bootstrap = require('bootstrap'); var Handlebars = require('handlebars'); var Highcharts = require('highcharts-browserify'); var parse = require('csv-parse'); var moment = require('moment'); var parsingChart = { doSomething: function() { ... } }; module.exports = parsingChart;
Actuellement, index.js
tout de /src
dans un seul fichier index.js
, puis je l’ browserify
à browserify
, ce qui fonctionne parfaitement, sans erreur dans l’application.
J’ai une section dans package.json qui définit les dépendances non disponibles via npm comme suit:
"browser": { "chosen": "./vendor/chosen.jquery.min.js", "typeahead": "./vendor/typeahead.bundle.js", "bloodhound": "./vendor/bloodhound.js" }
Maintenant, je veux commencer à écrire des tests Mocha pour les fonctions de /src
.
Ceci est mon premier stub dans test_chart.js
:
var chart = require('../src/chart'); chart.doSomething();
Mais quand je lance le mocha
, j’obtiens l’erreur suivante:
/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2 var proto = Element.prototype; ^ ReferenceError: Element is not defined at Object. (/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2:13) at Module._comstack (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/Users/.../js/node_modules/typeahead/node_modules/dom/index.js:4:15) at Module._comstack (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/Users/.../js/node_modules/typeahead/typeahead.js:3:11) at Module._comstack (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/Users/.../js/src/chart.js:3:1) at Module._comstack (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (/Users/.../js/test/test_chart.js:3:13)
Comment puis-je réparer cette erreur d’importation pour Mocha?
Je pense que peut-être qu’il n’aime pas require('typeahead')
car il ne peut pas voir les chemins de dépendance du browser
que j’ai définis dans package.json
.
Est-il possible de mettre ces fichiers à la disposition de Mocha ainsi que de browserify?
Ou devrais-je utiliser un autre paquet de test tout à fait?