Могу ли я создать файл, который не будет загружаться - PullRequest
0 голосов
/ 26 января 2019

Звучит странно, но я хочу создать File объект, который FileReader не загружается.Позвольте мне объяснить.

У меня есть функция, которая создает FileReader.В этой функции я также устанавливаю обработчики событий load и error

handleFileSelect(files:ArrayLike<File>){
...
let reader:FileReader = new FileReader();

  reader.onload = this.handleReaderLoaded;
  reader.onerror = this.handleReaderError;


  reader.readAsDataURL(file);
}

} Я хочу провести модульное тестирование, чтобы handleFileSelect правильно устанавливал обработчик ошибок и чтобы обработчик ошибок (handleReaderError) вызывается, если FileReader не удается.Но я не могу понять, как заставить FileReader терпеть неудачу.

Один мысленный процесс, который я имею в виду, состоит в том, чтобы каким-то образом создать File, который не загружается, но я также не могу этого сделать

Спецификация, которую я написал до сих пор,

fit('should call error handler when file doesn\'t get loaded successfully', (done) => {
    let newPracticeQuestionComponent = component;

    let file1 = new File(["foo1"], "foo1.txt");
    /*
    File reader will load the file asynchronously.
    The `done` method of `Jasmine` makes `Jasmine` wait
    When handleReaderError is called, call a fake function and within it call done
     */
    spyOn(newPracticeQuestionComponent,'handleReaderError').and.callFake(function(event:FileReaderProgressEvent){
      console.log("called fake implementation of handleReaderError ",event);
      expect(event.type).toEqual("abort");
      done();
    });

    newPracticeQuestionComponent.handleFileSelect([file1]);
//I SHOULD SIMULATE FILEREADER ERROR HERE BUT HOW??

  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...