Как проверить FileReader с помощью Jest - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь получить 100% охват в моем тесте, и этот тест проходит, но затем он все еще выделяет функцию render.onload

Component.jsx:

handleInputChange = (evt) => {
  evt.preventDefault();
  const { target } = evt;
  let value;
  let self = this;
  const reader = new FileReader();
  reader.onload = function (evt) {
    self.setState({
      previewPicture: evt.target.result,
      error: null
    });
  };
  reader.readAsDataURL(target.files[0]);
  value = target.files[0];          
  const name = target.name;
  this.setState({
    [name]: value
  });
};

Тест:

    const evt = {
      target: {
        type: 'file',
        name: 'profilePicture',
        files: [{ name: 'testName' }]
      },
      preventDefault: jest.fn()
    };
    const component = mount(<Component {...props} />).instance();
    evt.target.files[0] = new Blob([evt.target.files[0]], {type : 'img/png'});
    component.handleInputChange(evt);
    expect(component.state.profilePicture).toEqual(file);
});

Я хочу, чтобы все были рассмотрены в тесте, но я не знаю, протестировать FileRader

1 Ответ

1 голос
/ 26 июня 2019

Вам не нужно проверять поведение другого компонента в области действия вашего компонента.

Итак, если вы разрабатываете компонент, который использует FileReader(), вы должны предположить, что FileReader() работает правильно.FileReader() должен иметь свои собственные тесты, чтобы гарантировать, что его поведение также работает хорошо, таким образом мы сохраняем ответственность каждого компонента в рамках его реализации.

...