reactjs - 我如何模拟 reactjs 中的 promise ?

标签 reactjs jestjs

我想编写一个模拟 reactjs 中的 promise 的测试

我只需要一个 getHeaders() 的模拟实现来返回一个字符串

export const loadAllProjects = () => {
    return (dispatch) => {
        getHeaders()
            .then(headers => {
                ...do stuff
            })
    }
}

澄清我原来的功能是...

export const loadAllProjects = () => {
    return (dispatch) => {
                ...do stuff
    }
}

...我的测试是...

    it('should create SET_ALL_PROJECTS action when fetching projects', () => {
    fetchMock
        .getOnce('http://test.projects.api/api/projects',
        {
            body: [{name: "x"}],
            headers: { 'content-type': 'application/json' }
        }).spy()
    const expectedActions = [
        { type: "SET_ALL_PROJECTS", json: [{name:"x"}] },
    ]
    checkAsyncActionsWereDispatched(expectedActions, actions.loadAllProjects)
});

我希望测试与模拟 header 一起使用

最佳答案

const getHeaders = () => {
    return new Promise((resolve, reject) => {
        resolve("some string");
    });
};

a = await getHeaders();    //some string

关于reactjs - 我如何模拟 reactjs 中的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50739771/

相关文章:

reactjs - useEffect 中的 Debounce/Throttle onChange 事件

rxjs - 在 RxJS observable 的 subscribe() 中,Jest 没有处理来自 expect() 的错误

javascript - 测试 Async Redux Action Jest

javascript - 有没有办法显示嵌套在 Grid 组件中的 Material-UI Drawer?

reactjs - 如何在我的react组件中渲染draft js的LINK类型的实体图?

reactjs - 找不到模块 'react-dom' 的声明文件

javascript - React 中的命名导入

javascript - 使用 Enzyme.mount 时获取 `render` 调用返回 null

react-native - 可以对修改其导航 Prop 的组件方法进行单元测试吗?

node.js - 是否可以使用 Jest 模拟本地函数