我想用nodeunit测试我的库,我在其中使用File
Object,在网站上一切正常(FileAPI在那里实现)但是当我尝试用nodeunit测试它时我得到了错误:
Fatal error: File is not defined
我认为我必须添加:
var FileAPI = require('file-api');
var File = FileAPI.File;
在代码的乞讨中,但当我将该库包含在网站中时,我不需要这样做,如何处理? 要使用nodeunit,我必须在最后添加module.exports,是否还有必要? (github上的代码示例)
当我尝试测试此代码时,还有什么: https://github.com/GeoSmartCity-CIP/gsc-client/blob/feature/upload-data-file/src/upload/upload.js
进行此测试:
var gsc = require('../../src/upload/upload');
var FileAPI = require('file-api');
var File = FileAPI.File;
var exports = exports || {};
exports.isFileTypeCorrect = function(test) {
var file = new File('test.geojson');
var asd = new gsc.upload.Data(file);
test.ok(asd.isFileTypeCorrect(), 'this assertion should pass');
test.done();
};
我收到Fatal error: Cannot read property 'substr' of undefined
错误,问题是什么?
编辑:
substr的问题可能来自isShapefileCorrect函数,但仍然不知道为什么?
答案 0 :(得分:0)
var asd = new gsc.upload.Data(file);
这不是异步函数吗?那么可能应该在上传回调中调用asd.isFileTypeCorrect()。您还将isFileTypeCorrect函数定义为模块导出并在其自身内部调用自身。这不是一个无限循环吗?