首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试redux异步操作时出现问题

测试redux异步操作时出现问题
EN

Stack Overflow用户
提问于 2019-07-02 05:40:10
回答 1查看 33关注 0票数 0

我在测试以下异步Redux操作时遇到了问题。

代码语言:javascript
复制
export default function getBestPracticesInfo() {
    return function (dispatch, getState) {
        axios.get("testurl")
            .then(response => {
                return dispatch({type: "GET_BEST_PRACTICE", payload: response.data})
            }).catch(error => {
            return error
        })
    }
}

我想简单地验证该操作是否使用预期的有效负载调度正确的操作。为此,我模拟了axios调用、dispatchgetState()方法。模拟的dispatch()方法返回一个promise,其中包含用于调用它的数据。这样,我就可以确保我的测试断言不会在我的axios承诺解析之前触发。然而,在我的测试中,action(dispatch, getState)返回的是undefined,这让我困惑不解。我期待它返回一个承诺。

代码语言:javascript
复制
describe('metaDataActions tests', () => {
    let mock;
    beforeEach(() => {
        mock = new MockAdapter(axios);
        mock.onGet('testurl').reply(200, {data: 'TEST BEST PRACTICE RESPONSE'});
        sessionStorage.clear();
    });

    it('should call getBestPracticesInfo', () => {
        const getState = ()=> {return {metaData: {meta: {api: {bestPractices: '/api/v1/best_practices'}}}}};
        const dispatch = jest.fn(info => {
            return new Promise(resolve => {
                resolve(info);
            })
        });
        const action = getBestPracticesInfo();
        action(dispatch, getState).then(res =>
            expect(res).toEqual({type: "GET_BEST_PRACTICES_INFO", payload: response.data})
        );
    });
});
EN

回答 1

Stack Overflow用户

发布于 2019-07-03 21:42:03

在操作代码中,必须使用return语句来返回axios promise的结果。

代码语言:javascript
复制
export default function getBestPracticesInfo() {
    return function (dispatch, getState) {
        return axios.get("testurl")
            .then(response => {
                return dispatch({type: "GET_BEST_PRACTICE", payload: response.data})
            }).catch(error => {
            return error
        })
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56842791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档