我有一个正在运行的 Node 应用程序,我正在尝试添加 Mocha 测试,但遇到了一些奇怪的导入错误。
这是我的文件结构:
package.json
index.js
src/
chart.js
test/
test_chart.js
这就是我的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 analyseChart = {
doSomething: function() { ... }
};
module.exports = analyseChart;
目前我从以下位置导入所有内容/src
成一个单一的index.js
文件,然后将其与browserify
,效果很好,应用程序中没有错误。
我在 package.json 中有一个部分定义了无法通过 npm 获得的依赖项,如下所示:
"browser": {
"chosen": "./vendor/chosen.jquery.min.js",
"typeahead": "./vendor/typeahead.bundle.js",
"bloodhound": "./vendor/bloodhound.js"
}
现在我想开始为以下函数编写 Mocha 测试/src
.
这是我的第一个存根test_chart.js
:
var chart = require('../src/chart');
chart.doSomething();
但当我跑步时mocha
,我收到以下错误:
/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2
var proto = Element.prototype;
^
ReferenceError: Element is not defined
at Object.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/lib/matches.js:2:13)
at Module._compile (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.<anonymous> (/Users/.../js/node_modules/typeahead/node_modules/dom/index.js:4:15)
at Module._compile (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.<anonymous> (/Users/.../js/node_modules/typeahead/typeahead.js:3:11)
at Module._compile (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.<anonymous> (/Users/.../js/src/chart.js:3:1)
at Module._compile (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.<anonymous> (/Users/.../js/test/test_chart.js:3:13)
如何修复 Mocha 的此导入错误?
我想也许它不喜欢require('typeahead')
因为它看不到browser
我设置的依赖路径package.json
.
有没有办法让 Mocha 和 browserify 都可以使用这些文件?
或者我应该完全使用另一个测试包?