用Karma-Jasmine读取二进制文件

Read binary file with Karma-Jasmine

本文关键字:二进制文件 读取 Karma-Jasmine      更新时间:2023-09-26

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

var file = someModule.readFile('test-data/roof-top.tif');
var formData = new FormData();
formData.append('file',file, 'uploadedFile');

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

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

除此之外,设置一个文件服务器可能是可行的方法。实际上,您可以让Karma为您提供静态文件,而不需要自己设置服务器。

你需要node的文件系统来读取文件,然后创建Blob,这是原生JS对象,然后将文件附加到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');
});