2013-06-14 9 views
8

Gibt es eine Möglichkeit, einen JavaScript-Unit-Test zum Hochladen einer Datei mit der HTML 5-Datei-API durchzuführen? Zum Beispiel habe ich den Code:Komponententest für das Hochladen von HTML5-Dateien

<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> 

Deshalb möchte ich dies mit Javascript automatisieren, so kann ich das Gerät zu testen es. Also muss ich das Änderungsereignis auslösen und die Dateien irgendwie weitergeben. Am Ende sollte jede Datei ein HTML 5 File-Objekt mit einem benutzerdefinierten Pfad sein, den ich möchte.

+2

Sie können nicht den Wert von 'file' Eingang mit JavaScript, setzen Sie diese Sie tun, um eine Browser-Erweiterung irgendeiner Art benötigen würde. Warum versuchen Sie jedoch, die Funktionalität der Browsereingabe zu testen, warum nicht einfach ein Dateiobjekt als Teil des Tests? – robertc

+0

Robert, mein 'komplizierter' Code beginnt mit der Dateivariable, die eine FileList ist. Wie mache ich diese FileList eine Liste von File-Objekten, die auf tatsächliche Dateien auf der Festplatte verweisen? – StefanH

+0

Ich sagte bereits, dass Sie nicht können, aber selbst wenn Sie könnten, wenn Ihr Test, um eine Datei mit dem 'input' Element zu wählen, fehlgeschlagen ist, was würde das über Ihre Anwendung beweisen? Planen Sie, C++ - Patches an die verschiedenen Browser-Hersteller zu senden? – robertc

Antwort

0

Ich bin mir nicht sicher, ob dies helfen würde, aber wie wäre es mit iMacros für Firefox? Sie können ein Makro aufnehmen, das alles macht, was Sie wollen, und es dann so oft wie Sie möchten ausführen. Es ist wirklich einfach zu bedienen und funktioniert für fast alle meine UI-Tests.

iMacros firefox plugin

Verwandte Themen