测试Redux动作时分派不是功能

科恩

我正在学习使用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:调度不是函数

我究竟做错了什么?

阿萨夫·阿维夫(Asaf Aviv)

首先,您需要从您的操作返回已分派的操作 thunk

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

然后不要调用thunk而是传递引用(去掉括号),因为当操作是一个函数时,thunk中间件正在调用您的操作dispatch作为第一个参数传递

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TypeError:使用react-context api时分派不是函数

来自分类Dev

在与 redux 反应时分派一个动作

来自分类Dev

React - Redux:测试在其他动作中分派的动作

来自分类Dev

React/Redux - 不分派动作

来自分类Dev

使用combinedReducers时分派动作不会触发渲染

来自分类Dev

使用useReducer / useContext和React-Testing-Library时出现“ TypeError:分派不是函数”

来自分类Dev

Redux 不会设置 initialState。动作分派也失败

来自分类Dev

在React JS功能组件中分派动作后,如何立即使用Redux存储中的更新值

来自分类Dev

从非 redux 组件中的 redux 存储分派动作

来自分类Dev

从组件分派时,redux操作“不是函数”

来自分类Dev

为什么Redux不将我的动作分派给reducer?

来自分类Dev

在axiosinterceptor(非反应组件)中分派redux动作

来自分类Dev

React-Redux - 如何从子组件分派动作?

来自分类Dev

重定向完成后如何分派动作(Redux)?

来自分类Dev

Redux 如何使用 fetch 方法分派多个动作类型

来自分类Dev

React Router + Redux-在路由更改时分派异步操作?

来自分类Dev

React Router + Redux-在路由更改时分派异步操作?

来自分类Dev

动作必须是普通对象。尝试将动作分派为redux形式

来自分类Dev

如何测试一个动作是从NGXS中的另一个动作中分派的?

来自分类Dev

推送不是功能,Redux

来自分类Dev

分派多个条件动作

来自分类Dev

如何分派多个动作

来自分类Dev

Nuxt获取中的Vuex动作“不是功能”

来自分类Dev

Java的编译时分派参数是否被破坏?

来自分类Dev

如何同时分派多个ngrx操作

来自分类Dev

Redux,我可以修改状态-它不是只读的,不是在操作分派之外?

来自分类Dev

分派动作时的ngrx路由

来自分类Dev

不分派动作的动作创建者

来自分类Dev

React-redux正在分派一个API动作的时候,很明显,请求发回401错误

Related 相关文章

  1. 1

    TypeError:使用react-context api时分派不是函数

  2. 2

    在与 redux 反应时分派一个动作

  3. 3

    React - Redux:测试在其他动作中分派的动作

  4. 4

    React/Redux - 不分派动作

  5. 5

    使用combinedReducers时分派动作不会触发渲染

  6. 6

    使用useReducer / useContext和React-Testing-Library时出现“ TypeError:分派不是函数”

  7. 7

    Redux 不会设置 initialState。动作分派也失败

  8. 8

    在React JS功能组件中分派动作后,如何立即使用Redux存储中的更新值

  9. 9

    从非 redux 组件中的 redux 存储分派动作

  10. 10

    从组件分派时,redux操作“不是函数”

  11. 11

    为什么Redux不将我的动作分派给reducer?

  12. 12

    在axiosinterceptor(非反应组件)中分派redux动作

  13. 13

    React-Redux - 如何从子组件分派动作?

  14. 14

    重定向完成后如何分派动作(Redux)?

  15. 15

    Redux 如何使用 fetch 方法分派多个动作类型

  16. 16

    React Router + Redux-在路由更改时分派异步操作?

  17. 17

    React Router + Redux-在路由更改时分派异步操作?

  18. 18

    动作必须是普通对象。尝试将动作分派为redux形式

  19. 19

    如何测试一个动作是从NGXS中的另一个动作中分派的?

  20. 20

    推送不是功能,Redux

  21. 21

    分派多个条件动作

  22. 22

    如何分派多个动作

  23. 23

    Nuxt获取中的Vuex动作“不是功能”

  24. 24

    Java的编译时分派参数是否被破坏?

  25. 25

    如何同时分派多个ngrx操作

  26. 26

    Redux,我可以修改状态-它不是只读的,不是在操作分派之外?

  27. 27

    分派动作时的ngrx路由

  28. 28

    不分派动作的动作创建者

  29. 29

    React-redux正在分派一个API动作的时候,很明显,请求发回401错误

热门标签

归档