如何在客户端 Javascript 创建文件对象以进行单元测试?

Dee*_*abu 5 javascript client-side-validation

我正在使用 mocha、chai、karma 以及 PhantomJS 和相关插件。我们如何创建客户端 File 对象并将其传递给 FileReader API ?我必须上传一个测试 jpeg 文件,创建一个文件对象并将其传递给 FileReader api 才能继续测试。

End*_*ess 2

我不确定为什么你需要一个 File 实例,一个 Blob 应该足够了。您需要向我们展示您想要实现的目标的更多背景信息。
您的代码在做什么以及测试预计会产生什么结果?

如果您有权访问 DOM 和 canvas,只需使用 js 创建一个

document.createElement('canvas').toBlob(function(blob) {
  // FileReader will be happy with just a blob
  // But if you really want a file you need to construct it also
  // var file = new File([blob], 'canvas.jpg', {type: blob.type})
  
  var fr = new FileReader
  fr.onload = function(){
    console.log(fr.result.byteLength)
  }
  fr.readAsArrayBuffer(blob)
}, 'image/jpeg')
Run Code Online (Sandbox Code Playgroud)