动作不要以开玩笑的方式改变减速器测试的状态

问题描述 投票:0回答:1

我正在尝试测试我的减速器,但是当我对测试调度操作时,我的初始状态没有改变。

那是我的减速器:

    export default function login(state = INITIAL_STATE, action) {
  switch (action.type) {
    case Types.SET_ERROR:
      return {
        ...state,
        error: action.error,
      };
    case Types.SET_LOGIN:
      return {
        ...state,
        user: {email: action.user.email, password: action.user.password},
      };
    default:
      return state;
  }
}

这是我的测试:

it('should handle SET_ERROR', () => {
      const setErrorAction = {type: 'SET_ERROR', error: 'a'};
      expect(login(INITIAL_STATE, setErrorAction)).toEqual({
        ...INITIAL_STATE,
        error: 'a',
      });
});

这是我的测试结果:

 expect(received).toEqual(expected) // deep equality

    - Expected
    + Received

      Object {
    -   "error": "a",
    +   "error": "",
        "user": Object {
          "email": "",
          "password": "",
        },
      }
reactjs react-native testing redux jest
1个回答
0
投票

我没有意识到Types.SET_ERROR ==='SET_ERROR'是不正确的。

@@ segFault帮助我意识到我的动作的名称是不同的,因此因为我的动作未调度。

© www.soinside.com 2019 - 2024. All rights reserved.