gpt4 book ai didi

reactjs - 如何动态模拟组件?

转载 作者:行者123 更新时间:2023-12-05 05:38:58 24 4
gpt4 key购买 nike

我在测试库中使用 jest。

我必须模拟我要测试的组件的每个子组件,就像这样工作正常:

jest.mock('react-router-dom', () => ({
NavLink: (props: any) => {
const NavLinkMock = 'NavLink-Mock';
// @ts-ignore
return <NavLinkMock {...props} />;
},
}));

但是因为我不想在整个应用程序中复制粘贴模拟指令,所以我编写了一个函数来模拟任何组件:

export function mockComponent(source: string, name: string) {
jest.mock(source, () => ({
[name]: (props: any) => {
const ComponentMock = `${name}-mock`;
// @ts-ignore
return <ComponentMock {...props} />;
},
}));
}

运行测试时,我得到这个错误:

> The module factory of `jest.mock()` is not allowed to reference any
> out-of-scope variables.
> Invalid variable access: name

谁能拯救这一天?

最佳答案

您需要在变量中为模拟组件添加前缀“mock”。这是针对未初始化的 mock 变量的预防措施,允许以 mock 为前缀的变量名。

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

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