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

Testing JavaScript libraries with nodeunit - FileApi, substr undefined

本文关键字:FileApi substr undefined nodeunit 测试 JavaScript 使用      更新时间:2023-09-26

我想用nodeunit测试我的库,我在其中使用File对象,在网站上一切正常(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 函数,但仍然不知道为什么?

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