使用nodeunit测试JavaScript库 - FileApi,substr undefined

时间:2016-03-11 13:46:43

标签: javascript node.js nodeunit

我想用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函数,但仍然不知道为什么?

1 个答案:

答案 0 :(得分:0)

var asd = new gsc.upload.Data(file);这不是异步函数吗?那么可能应该在上传回调中调用asd.isFileTypeCorrect()。您还将isFileTypeCorrect函数定义为模块导出并在其自身内部调用自身。这不是一个无限循环吗?