【问题标题】:React.How do I check redux via jest?React.如何通过 jest 检查 redux?
【发布时间】:2020-06-12 10:16:03
【问题描述】:

如何检查 redux 操作是否有效? 并在执行结束时检查 dataState 的数据?

例如:

在应用程序中测试授权的功能。 expect(AuthMethod(login, password));

例子:

  return async (dispatch) => {
    dispatch(AuthLoading());

    try {
      var date = new Date().getDate();
      var month = new Date().getMonth() + 1; 
      var year = new Date().getFullYear();
      var hours = new Date().getHours(); 
      var min = new Date().getMinutes(); 
      var sec = new Date().getSeconds();
      var time =
        date + '-' + month + '-' + year + ' ' + hours + ':' + min + ':' + sec;

      let response = await fetch(
        'http://' + ServerLink + ':' + ServerPort + '/tmo/rest/user',
        {
          method: 'POST',
          headers: {
            Accept: 'application/json',
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
            login: login,
            password: password,
            deviceSerialNumber: '1111111', 
            currentAppVersion: AppVersion,
            currentDateTime: time,
          }),
        },
      );

      let data = await response.json();
      if (data.sessionToken === '') {
        dispatch(AuthFailure('Token null'));
      } else {
        AsyncStorage.setItem('token', data.sessionToken);
        dispatch(AuthSuccess(data));
      }
    } catch (e) {
      dispatch(AuthFailure(e.message));
    }
  };
};```

【问题讨论】:

    标签: reactjs react-native jestjs


    【解决方案1】:

    您可以发布您的操作示例吗?

    但与此同时,假设您有这样的操作:

    export const yourAction = (data) => async (dispatch) => {
        await dispatch({type: 'MY_ACTION_TYPE, payload: [1,2,3] })
    }
    

    像这样简单地测试:

    it('should do something', async () => {
       await yourAction(data)(dispatch)
       expect(dispatch).toHaveBeenCalled() // or
       expect(dispatch).toHaveBeenCalledWith(somethingYouExpectInHere)
    })
    

    【讨论】:

      猜你喜欢
      • 2018-08-28
      • 2014-11-25
      • 2017-08-03
      • 2019-03-22
      • 2020-05-03
      • 2018-03-16
      • 2018-06-01
      • 2021-02-19
      • 2020-12-04
      相关资源
      最近更新 更多