gpt4 book ai didi

javascript - 模拟 useSelector 具有不同的值

转载 作者:行者123 更新时间:2023-12-02 21:03:02 26 4
gpt4 key购买 nike

我正在尝试这样的事情:

const useSelector = jest.fn();
jest.mock('react-redux', () => ({
useSelector,
}));

然后尝试做这样的事情:

useSelector.mockReturnValueOnce({});
shallow(
<ComponentUsingUseSelector />
);

这会给我一个错误:

The module factory of jest.mock() is not allowed to reference any out-of-scope variables.

因此,如果我不能使用超出范围的变量进行模拟,那么如何为每个测试返回不同的值?

最佳答案

简化版本,也可以使用:

import * as redux from 'react-redux'

jest
.spyOn(redux, 'useSelector')
.mockReturnValueOnce('first call')

此外,最好只 stub 存储的必要部分,而不是依赖于对 mockReturnValueOnce 的多次调用:

const locale = 'en'

const state = {
application: { locale },
}

jest
.spyOn(redux, 'useSelector')
.mockImplementation((callback) => callback(state))

关于javascript - 模拟 useSelector 具有不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61291008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com