Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在客户端Javascript中为单元测试创建文件对象?_Javascript_Client Side Validation - Fatal编程技术网

如何在客户端Javascript中为单元测试创建文件对象?

如何在客户端Javascript中为单元测试创建文件对象?,javascript,client-side-validation,Javascript,Client Side Validation,我正在使用摩卡、柴、因果报应以及幻影和相关插件。如何创建客户端文件对象以将其传递给FileReader API?我必须上传一个测试jpeg文件,创建一个文件对象并将其传递给FileReader api以继续测试。我不确定您为什么需要一个文件实例,一个Blob就足够了。您需要向我们展示更多您试图实现的目标。 您的代码在做什么?测试预期会产生什么结果 如果您可以访问DOM和canvas,只需使用js创建一个即可 document.createElement('canvas').toBlob(函数(

我正在使用摩卡、柴、因果报应以及幻影和相关插件。如何创建客户端文件对象以将其传递给FileReader API?我必须上传一个测试jpeg文件,创建一个文件对象并将其传递给FileReader api以继续测试。

我不确定您为什么需要一个文件实例,一个Blob就足够了。您需要向我们展示更多您试图实现的目标。
您的代码在做什么?测试预期会产生什么结果

如果您可以访问DOM和canvas,只需使用js创建一个即可

document.createElement('canvas').toBlob(函数(blob){
//FileReader只需要一个blob就可以了
//但是如果你真的想要一个文件,你也需要构造它
//var file=新文件([blob],'canvas.jpg',{type:blob.type})
var fr=新文件读取器
fr.onload=函数(){
控制台日志(fr.result.byteLength)
}
fr.readAsArrayBuffer(blob)

},'image/jpeg')
@guest271314:我不认为这是重复的。这个问题是关于读/写本地文件的。这个问题是关于为了测试而存根或模拟
文件
对象。我投票决定重新打开。@GregBurghardt OP询问如何创建
文件
对象。另请参见我同意Greg Burghardt的观点,这个问题实际上是关于存根的,但是使用一个有效的文件,而不是一些包含值的数组。我想为有效图像创建一个文件对象。@DeepanPrabhuBabu“我想创建一个文件对象”您可以使用
new File()
构造函数创建一个
File
对象,如链接问题的答案所述;或者
FormData,prototype.append()
@DeepanPrabhuBabu我正在编写的开发代码将在客户端浏览器上使用javascript FileReader验证文件,一旦他选择要在表单中上载的文件,然后再上载。基本上,我的设置由npm、karma、mocha、chai、browserify、phantomjs和javascript代码组成,用于在传递文件对象后验证文件。如果我使用普通浏览器并手动选择一个文件,则代码可以正常工作。我想把它转换成一个自动测试,在这里我可以参数化文件并传递不同的测试文件来测试代码流。如果您需要更多的上下文,请告诉我。我无法完全使用phantomjs进行测试,因为它不会触发大多数onload方法,而且,我使用上述代码创建的blob对象(谢谢!!)是空的。我使用了polyfill,因为phantomjs本机不支持它。@DeepanPrabhuBabu“和javascript代码,用于在传递文件对象后验证文件。如果我使用普通浏览器并手动选择一个文件,则代码有效。”。我想把它转换成一个自动测试,在这里我可以参数化文件并传递不同的测试文件来测试代码流。“您是否试图使用
javascript
填充
元素的
.files
对象?”?您是否可以包含
javascript
,这两者都是,并且没有返回问题的预期结果?看见