我正在为使用browserify管理的模块编写测试.这是我要测试的模块(具体来说我想测试calculateData):
require('mapBox.js'); var utils = require('./src/chart_utils'); var dashboard = { calculateData: function(data) { // functions to test } };@H_403_4@我开始写这样的测试:
var expect = require('chai').expect; var Dashboard = require('../dashboard'); // describe('Dashboard',function () { // describe('#convertData',function () { // it('should calculate the x and y value',function () { // var combinedData = []; // var data = Dashboard.convertData(combinedData); // expect(data.length).to.equal(2); // etc // }); // }); // });@H_403_4@但即使前两行也给我一个错误:
node_modules/mapBox.js/node_modules/leaflet/dist/leaflet-src.js:513 ua = navigator.userAgent.toLowerCase(),^ ReferenceError: navigator is not defined@H_403_4@它看起来好像在测试所有包含的模块文件,并发现错误. @H_403_4@有没有办法解决这个问题,只测试仪表板中的功能?
解决方法
您是否在browserify配置中指定(“nodejs”兼容模式)?此行为可能来自您不需要的客户端polyfill. 此外,browserfify将遵循所有“require”指令,如果您要测试的函数不需要模块,则不需要它.