如何通过JavaScript以编程方式将文件添加到html输入(类型文件)?

时间:2016-12-07 00:37:07

标签: javascript unit-testing qunit

我正在编写这段代码,要求我通过Q-Unit进行单元测试。我有一个输入字段,用户上传文件,然后我使用Javascript的“FileReader”读取它,对其进行一些处理。但是,在编写单元测试时,我无法在输入字段上传文件,以便我可以对我的功能进行单元测试。我现在正在做的事情如下:

//Unit test bit
var done = assert.async();
var pngFile = new File([""],"../../img/test.jpg");
inputElement.files[0] = pngFile;
photoMosaic.extractImageFromInput(inputElement);
setTimeout(function() {
        assert.equal(photoMosaic.getImageName(),"../../img/test.jpg", "Correct file format test succeeds" );
        done();
    }, 500 );

提取图像的extractImageFromInput中的代码如下:

//after some checkings and stuff
var reader = new FileReader();
                    // Closure to capture the file information.
                    reader.onload = (function(theFile) {
                        return function(e) {
                            // Render image
                            this.MainImage = document.createElement('IMG');
                            this.MainImage.src = e.target.result;
                            this.MainImage.setAttribute("name",theFile.name);
                            return this.MainImage;
                        };
                    })(file);
                    reader.readAsDataURL(file);

但是,它给了我以下错误:

GET data: net::ERR_INVALID_URL

我尝试将图像放在与测试相同的目录中,并使用“test.jpg”作为路径,但没有运气。任何帮助将不胜感激。

0 个答案:

没有答案