测试Redux动作时分派不是函数

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

我正在学习使用Jest和Enzyme为动作创作者编写测试。这是我与React Native一起使用的动作创建者。

请考虑以下代码:

import {
    FETCH_FAIL
} from './types';

export const fetchFail = (dispatch) => {
    dispatch({
        type: FETCH_FAIL,
        payload: "An error occurred. Try again later."
    });
};

我为此动作创建者编写了以下测试:

import configureStore from 'redux-mock-store';
import thunk from 'redux-thunk';

const middlewares = [thunk];
const mockStore = configureStore(middlewares);

test('should fail fetch', async () => {
    const payload = {
        type: FETCH_FAIL,
        payload: "An error occurred. Try again later."
    }

    const store = mockStore({ data:[], isConnected: false });
    expect(store.dispatch(actions.fetchFail())).toEqual(payload);
})

我的测试失败,显示以下结果:

TypeError:调度不是函数

我在做什么错?

reactjs jestjs enzyme
1个回答
1
投票
首先,您需要从thunk返回已分派的操作>

export const fetchFail = (dispatch) => { return dispatch({ type: FETCH_FAIL, payload: "An error occurred. Try again later." }); };

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