"react-router-dom": "^6.0.0-alpha.5",
Run Code Online (Sandbox Code Playgroud)
我几乎尝试了一切。
我只是想从钩子上模拟这个navigate()调用useNavigate()。就是这样。简单的。没有任何作用。
不,我不想使用Link。useNavigate 也在其他地方以编程方式使用,我也想模拟它们
"react-router-dom": "^6.0.0-alpha.5",
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这些:
jest.mock('react-router-dom', () => {
// Require the original module to not be mocked...
const originalModule = jest.requireActual('react-router-dom');
return {
__esModule: true,
...originalModule,
// add your noops here
useNavigate: jest.fn(() => 'bar')
};
});
Run Code Online (Sandbox Code Playgroud)
import * as ReactRouterDom from "react-router-dom";
...
// cannot redefine property
Object.defineProperty(ReactRouterDom, 'useNavigate', {
configurable: true,
value: jest.fn(() => 'bar')
});
Run Code Online (Sandbox Code Playgroud)
// doesnt work
jest.mock('react-router-dom', () => ({
useNavigate: jest.fn(() => jest.fn), …Run Code Online (Sandbox Code Playgroud)