Встречается на собеседованиях • сегодня

Как тестировать Redux

Для тестирования Redux нужно проверять три основные части: редьюсеры, экшены и селекторы.

Редьюсеры - тестируем чистые функции:

javascript
test('should handle ADD_TODO', () => {
  const initialState = { todos: [] }
  const action = { type: 'ADD_TODO', payload: 'Learn Redux' }
  const nextState = todosReducer(initialState, action)
  expect(nextState.todos).toEqual(['Learn Redux'])
})

Экшены - проверяем корректность создания:

javascript
test('should create an action to add todo', () => {
  const text = 'Finish docs'
  const expectedAction = {
    type: 'ADD_TODO',
    payload: text
  }
  expect(addTodo(text)).toEqual(expectedAction)
})

Селекторы - тестируем вычисляемые данные:

javascript
test('should select active todos', () => {
  const state = { todos: [{id:1, text:'Test', completed: false}] }
  const result = selectActiveTodos(state)
  expect(result.length).toBe(1)
})

Для интеграционных тестов используйте redux-mock-store для проверки последовательности экшенов. Для асинхронных экшенов (thunk/saga) мокайте API вызовы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы