объединяет редуцеры с простыми юнит-тестами? Поведение исходного состояния изменено - PullRequest
1 голос
/ 27 марта 2020

плохо знакомы с React-redux, используя React (из create -act-app) с response-redux и Jest для тестов

Основная проблема заключается в разнице в поведении при использовании combReducers после рефакторинга большого редуктора и нарезка его на маленькие индивидуальные редукторы

Итак, я проверяю свое начальное состояние с помощью простого expect(store.getState()).toEqual({}); При использовании одного «большого» редуктора тесты проходят, поскольку одиночные редукторы возвращают {} по умолчанию

Но когда я комбинирую новые редукторы, я получаю часть состояния, за которое каждый редуктор отвечает, в мое состояние. Это нарушает тест и показывает, что приложение будет вести себя по-разному

Итак, с: createStore(combineReducers({users: receiveUsersReducer, questions: receiveQuestionsReducer, userLoggedIn: userLoggedIn}) и для каждого редуктора с параметром состояния по умолчанию, установленным в (state = {}, action = {})

, я получаю следующее результат:


    - Expected
    + Received

   - Object {}
    + Object {
    +   "questions": Object {},
    +   "userLoggedIn": Object {},
    +   "users": Object {},
    + }

пустые объекты для каждого редуктора, где я бы ожидал простого {}

Это означает, что мне придется добавить дополнительный слой "ключ" (с вопросами, пользователи или userLoggedI) при доступе к моему состоянию через приложение сейчас? Например, если бы у меня было:

const currentState = store.getState()
currenState.users

понадобится ли мне теперь:

const currentState = store.getState().users
currenState.users

Спасибо за разъяснения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...