Javascript HTML5文件上传的单元测试

Javascript HTML5文件上传的单元测试,javascript,html,Javascript,Html,有没有办法使用HTML5文件API进行javascript单元测试以上传文件? 例如,我有以下代码: <form method="POST" enctype="multipart/form-data"> <input type="file" id="fileselect" name="fileselect[]" multiple="multiple"/> </form> <script type="text/javascript"> f

有没有办法使用HTML5文件API进行javascript单元测试以上传文件? 例如,我有以下代码:

<form method="POST" enctype="multipart/form-data">
  <input type="file" id="fileselect" name="fileselect[]" multiple="multiple"/>
</form>

<script type="text/javascript">
   function fileSelectHandler(e) {
       var files = e.target.files || e.dataTransfer.files;
       // at this point, files is a FileList object
   }

   var fileselect = document.getElementById("fileselect");
   fileselect.addEventListener("change", fileSelectHandler, false);
</script>

函数fileSelectHandler(e){
var files=e.target.files | | e.dataTransfer.files;
//此时,文件是一个文件列表对象
}
var fileselect=document.getElementById(“fileselect”);
fileselect.addEventListener(“更改”,fileSelectHandler,false);

所以我想用javascript自动化这个,这样我就可以对它进行单元测试了。所以我需要触发更改事件,并以某种方式传递文件。最后,每个文件都应该是一个HTML5文件对象,具有我想要的自定义路径。

我不确定这是否有帮助,但是使用iMacros for firefox怎么样?您可以录制一个可以执行任何操作的宏,然后根据需要随时运行它。它真的很容易使用,并且几乎适用于我所有的UI测试


您不能使用JavaScript设置
文件
输入的值,为此您需要某种浏览器扩展名。但是,为什么要测试浏览器输入的功能,为什么不让一个文件对象作为测试的一部分呢?Robert,我的“复杂”代码从文件变量开始,它是一个文件列表。我如何使文件列表成为指向硬盘上实际文件的文件对象列表?我已经说过你不能,但即使你可以,如果用
input
元素选择文件的测试失败,你的应用程序会证明什么?你打算向不同的浏览器供应商发送C++补丁吗?我的代码比这个长很多,它继续与文件对象一起工作,解析文件,通过Ajax调用到一些服务器上传,等等,所以我的目标是我的JavaScript代码的其余部分,而不是文件的选择。我还没找到一个方法。我还想测试我的上传函数,该函数将接受一个文件或文件列表作为其参数之一。