Как протестировать window.местоположение.назначить с помощью оболочки react?

#reactjs #enzyme

#reactjs #фермент

Вопрос:

У меня есть react компонент, который переходит на разные страницы в зависимости от значения somecondition . Например:

 if (somecondition) {
 window.location.assign('some link')}
}
  

Как бы мне протестировать это somecondition с помощью enzyme wrapper?

Комментарии:

1. Просто смоделируйте функцию assign и проверьте вызов макетной функции

Ответ №1:

Используя enzyme и jest, ваш тест может выглядеть следующим образом:

 test('should redirect', () => {
  // SETUP
  window.location.assign = jest.fn()

  // EXECUTE
  const wrapper = shallow(<Component {...props} />)
  wrapper.instance().callYourFunction()

  // VERIFY
  expect(window.location.assign).toHaveBeenCalled()
  window.location.assign.mockClear()
})