Использование Jest для макетирования Axios и макета Windows.Location.Assignment - PullRequest
1 голос
/ 06 апреля 2019

Некоторые компоненты ReactJ используют библиотеку Axios NPM для запуска сообщений Http. Используя пример сообщения от Axios, мы имеем:

axios.post('/user', {
       firstName: 'Fred',
       lastName: 'Flintstone'
   })
   .then(function (response) {
       window.location.assign('/nextscreen');
   })
  .catch(function (error) {
    console.log(error);
  }); 

Когда сообщение сделано, запускается «затем», чтобы перейти на следующую страницу.

Мы используем Jest и Enzyme для модульного тестирования функциональности Axios. Кроме того, мы успешно издевались над: - сообщение Axios с использованием jest-mock-axios - метод window.location.assign с использованием jest mock.

Однако, когда в макете Axios запускается «then», метод mocked window.location.assign каждый раз завершается ошибкой.

Можно ли совмещать вызов Axios и window.location.assign вместе?

Я мог бы передать метод, который оборачивает метод window.location.assign, но это не правильно.

1 Ответ

0 голосов
/ 06 апреля 2019

Не уверен, правильно ли вы высмеяли window объект.Но вы всегда можете посмеяться над этим в своем тестовом файле, например:

it('test', () => {
  window.location.assign = jest.fn();
  // your function that you want to test
  expect(window.location.assign).toBeCalledWith('/nextscreen');
});
...