相关疑难解决方法(0)

反应笑话模拟 useNavigate()

"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)

mocking reactjs jestjs react-router-dom react-hooks

39
推荐指数
3
解决办法
5万
查看次数

标签 统计

jestjs ×1

mocking ×1

react-hooks ×1

react-router-dom ×1

reactjs ×1