我有类似的几行代码:模拟文件输入
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);
};
所有的方法都是一个jQuery函数内部私人,我不whant使“handleNewFiles”公众只为测试目的。
我很乐意与这样的事情来测试这些行:
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();
});
但我怎么得到一些无效资料event.target.files?
Fix onChangeCallback({target {files:[1,2,3]}});请。你在那里错过了一个冒号。 它应该是:onChangeCallback({target:{files:[1,2,3]}}); – vullnetyy
添加冒号。谢谢! – Jakob