Как протестировать window.location.assign с помощью реактивной оболочки?

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

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

Как бы я протестировал этот некоторое состояние, используя обертку enzyme?

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

user3142695 09.04.2019 20:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
492
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя фермент и шутку, ваш тест может выглядеть так:

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()
})

Другие вопросы по теме