如何在使用redux-promise和axios的项目中编写异步操作的测试?

时间:2017-08-25 21:52:02

标签: javascript node.js redux axios redux-promise

我的团队最近开始研究使用redux-promise的项目。每个动作中的有效负载都是一个axios调用,如下所示:

function fetchUsers() {
    return {
        type: actionTypes.FETCH_USERS,
        payload: axios.post('users')
    }
}

Redux-promise负责发送“带有已解决的承诺价值的行动副本”(他们的话)。 reducer期望数据,而不是承诺:

function userReducer(state, action) {
    switch (action.type) {
        case actionTypes.FETCH_USERS:
            return action.payload.data
        default:
            return state
    }
}

该应用程序按预期工作,但编写测试一直是一个挑战。在这种环境下编写测试的最佳实践是什么?我想为动作创建者和减速器编写测试。

1 个答案:

答案 0 :(得分:-1)

Redux测试中有一个very nice tutorial here' Async Action Creators'

基本上你需要做的就是

  1. 使用nock之类的库来模拟服务器响应
  2. 使用内置redux-mock-store在调用操作后测试redux状态