habe ich so etwas wie diese Zeilen Code:Mock-Datei Eingang für Unit-Test
jQuery('.js-img-input').on('change', handleNewFiles);
var handleNewFiles = function(event) {
var fileList = event.target.files;
loadFileList(fileList);
};
var loadFileList = function(fileList) {
jQuery(fileList).each(function(key, file) {
readFileAsync(file);
});
}
var readFileAsync = function(file) {
var fileReader = new FileReader();
fileReader.addEventListener("load", function(event) {
file.result = event.target.result;
saveFile(file);
});
fileReader.readAsDataURL(file);
};
Alle Methoden sind privat in einer jQuery-Funktion und ich whant nicht „handleNewFiles“ öffentlich machen nur für Testzweck
Ich würde gerne diese Zeilen mit so etwas wie dies zu testen:
it('should create a fileReader', function(){
spyOn(window, 'FileReader').and.returnValue({
addEventListener: function(){},
readAsDataURL: function(){}
});
jQuery('.js-img-input').trigger('change');
expect(window.FileReader).toHaveBeenCalled();
});
Aber wie kam ich einige Dummy-Daten in event.target.files?
Korrektur onChangeCallback ({target {files: [1,2,3]}}); Bitte. Sie vermissen dort einen Doppelpunkt. Es sollte sein: onChangeCallback ({target: {files: [1,2,3]}}); – vullnetyy
Hinzugefügt Doppelpunkt. Vielen Dank! – Jakob