0

ライブラリをノードユニットでテストしたいのですが、その中Fileでオブジェクトを使用しています。ウェブサイトではすべてが機能しています(FileAPIが実装されています)が、ノードユニットでテストしようとするとエラーが発生します:

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 関数によるものですが、それでも理由がわかりませんか?

4

1 に答える 1

0

var asd = new gsc.upload.Data(file);非同期機能じゃないの?次に、おそらく asd.isFileTypeCorrect() をアップロード コールバック内で呼び出す必要があります。また、 isFileTypeCorrect 関数をモジュールのエクスポートとして定義し、それ自体を内部で呼び出します。無限ループじゃない?

于 2016-03-11T14:09:04.280 に答える