gpt4 book ai didi

reactjs - 如何模拟 react 自定义钩子(Hook)返回值?

转载 作者:行者123 更新时间:2023-12-04 11:03:40 25 4
gpt4 key购买 nike

这是我的自定义钩子(Hook):

  export function useClientRect() {
const [scrollH, setScrollH] = useState(0);
const [clientH, setClientH] = useState(0);
const ref = useCallback(node => {
if (node !== null) {
setScrollH(node.scrollHeight);
setClientH(node.clientHeight);
}
}, []);
return [scrollH, clientH, ref];
}
}

我希望每次调用它时,它都会返回我的值。像:
jest.mock('useClientRect', () => [300, 200, () => {}]);

我怎样才能做到这一点?

最佳答案

将钩子(Hook)作为模块加载。然后模拟模块:

jest.mock('module_name', () => ({
useClientRect: () => [300, 200, jest.fn()]
}));

mock 应该在 test fn 之外的文件之上调用。因此,我们将只有一个数组作为模拟值。

如果你想在不同的测试中用不同的值模拟钩子(Hook):
import * as hooks from 'module_name';

it('a test', () => {
jest.spyOn(hooks, 'useClientRect').mockImplementation(() => ([100, 200, jest.fn()]));
//rest of the test
});

关于reactjs - 如何模拟 react 自定义钩子(Hook)返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270013/

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