Как проверить редуктор и действия, которые отправляют тип с полезной нагрузкой? - PullRequest
1 голос
/ 16 марта 2020

Мой редуктор очень тонкий, а мои действия очень толстые. Под этим я подразумеваю, что весь лог c входит в мои действия, а действия отправляют уже отформатированные данные, а в редукторе новые данные просто распространяются.

async function setInitialData(dispatch,state) {
    // ... many things going on
    // ...async await what not
    const currentRate = await getCurrentRate();
    const thing = getThing(state);

    const payload = {
      currentRate,
      thing,
      isLoading: false,
    };
    dispatch({
      type: ActionTypes.SET_INITIAL_DATA_SUCCESS,
      payload,
    });
}

, а редуктор просто:

case ActionTypes.SET_INITIAL_DATA_SUCCESS: {
  return {...state, ...action.payload};
}

как мне издеваться, шпионить, тестировать эти действия? Я думаю, я хочу:

1) фиктивные функции asyn c и возвращаемые значения

2) убедиться, что эти значения отправлены и состояние обновлено

Как я go насмехаюсь над этим с шуткой? Пока я прихожу с:

jest.mock('./actions');

const dispatch = jest.fn();

it('setInitialData is called', () => {
  setInitialData(dispatch);
  expect(setInitialData).toBeCalledWith(dispatch);
});

Я не слишком знаком с насмешками и тестированием. Я ценю вашу помощь.

В этом примере я НЕ использую избыточность. Это React useReducer.

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