用モックファイル入力:私はこれらのコード行のようなものだユニットテスト
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の関数の内部でプライベートであり、私はちょうどのために、「handleNewFiles」公衆を作るためにwhantはありませんテスト目的。
私はこのようなもので、これらの行をテストするのが大好きだ:
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にいくつかのダミーデータを取得するのですか?
onChangeCallback({target {ファイル:[1,2,3]}})を修正しました。お願いします。そこにコロンがありません。 これは次のようにする必要があります:onChangeCallback({target:{files:[1,2,3]}}); – vullnetyy
コロンが追加されました。ありがとう! – Jakob