使用jest为酶装载添加全局包装



背景

所以我将react查询添加到一个项目中,我的酶测试遇到了问题。对于那些使用过RQv3的用户,您知道它需要一个QueryClientProvider包装器。这对我的应用程序来说很好,但像这样的测试:

...
const mountedComponent = () => {
return mount(<Component {...props} />);
};

现在将失败,除非我添加这样的包装:

import { QueryClient, QueryClientProvider } from 'react-query';
const queryClient = new QueryClient();
...
const mountedComponent = () => {
return mount(<QueryClientProvider client={queryClient}><Component {...props} /></QueryClientProvider>);
};

问题

有没有可能为笑话添加一个全局包装器,也许是在setupTests中,这样我就可以在那里添加QueryClientProvider一次,而不是在每个需要它的测试中。

迄今为止最好的答案是:

封装挂载而不是封装组件可能是可行的:

const mountWithQueryClient = (component) => mount(<QueryClientProvider client={new QueryClient()}>{component}</QueryClientProvider>)

然后你可以导入它而不是挂载,但这仍然意味着要触摸你的所有测试:/

最新更新