Мой редуктор очень тонкий, а мои действия очень толстые. Под этим я подразумеваю, что весь лог 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.