如何测试带有负载的派遣类型的reducer和操作?

时间:2020-03-16 09:45:36

标签: javascript jestjs

我的减速器很稀,动作很胖。我的意思是,整个逻辑进入我的动作,动作分配已经格式化的数据,而在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。

0 个答案:

没有答案