我试图react-router-dom在我的一个测试用例中进行模拟,以便useHistory钩子在我的测试中起作用。我决定使用jest.mock模拟整个module,并jest.requireActual保留我可能不想模拟的其他属性。
jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useHistory: () => ({
location: {
pathname: '/list',
},
}),
}));
这实际上源自对以下问题的高度评价的解决方案之一:How to mock useHistory hook in jest?
但是,TypeScript 编译器在以下行中标记以下错误 ...jest.requireActual('react-router-dom'),
TS2698:传播类型只能从对象类型创建。
有趣的是,我只在将 jest 和 ts-jest 更新到最新版本(jest v26)后才会遇到这个问题。当我使用 jest 24.xx 时,我没有遇到任何这些问题
"@types/jest": "^26.0.4",
"jest": "^26.1.0",
"ts-jest": "^26.1.1",
有谁知道如何为最新的 jest 版本解决这个问题?