用Karma-Jasmine读取二进制文件

时间:2016-10-04 12:19:08

标签: javascript node.js testing jasmine karma-jasmine

我正在开发测试平台,我想测试文件上传服务。 有没有办法读取二进制文件并将其附加到FormData

var file = someModule.readFile('test-data/roof-top.tif');

var formData = new FormData();

formData.append('file',file, 'uploadedFile');

或者我应该构建一个静态文件服务器并执行一些Ajax调用来检索我的二进制文件?

2 个答案:

答案 0 :(得分:0)

您需要节点FileSystem来读取文件,然后创建本地JS对象的Blob,然后将文件附加到FormData

以下情况会产生类似的结果:

const fs = require('fs');
var formData = new FormData();

fs.readFile('test-data/roof-top.tif', function(err, data){

    var blob = new Blob(data);
    formData.append('file', blob, 'uploadedFile');

});

答案 1 :(得分:0)

您可以尝试将二进制数据编码为文本(base64或字节数组)。然后,您可以将其作为javascript文件加载到浏览器中,就像您对任何其他测试数据一样。

除此之外,设置文件服务器可能就是这样。您实际上可以获得Karma to serve static files,而不需要自己设置服务器。