我的减速器很稀,动作很胖。我的意思是,整个逻辑进入我的动作,动作分配已经格式化的数据,而在reducer中,新数据只是散布开来。
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,
});
}
和reducer只是:
case ActionTypes.SET_INITIAL_DATA_SUCCESS: {
return {...state, ...action.payload};
}
我该如何模拟,监视,测试这些动作?我想我想
1)模拟异步函数和返回值
2)确保已调度这些值并更新了状态
我该如何开玩笑地嘲笑这些?到目前为止,我来了:
jest.mock('./actions');
const dispatch = jest.fn();
it('setInitialData is called', () => {
setInitialData(dispatch);
expect(setInitialData).toBeCalledWith(dispatch);
});
我对模拟和测试不太熟悉。感谢您的帮助。
在此示例中,我不使用redux。这是React useReducer。