小编Max*_*ôté的帖子

使用玩笑模拟 react-router-dom 钩子不起作用

我正在使用 Enzyme 的浅层方法来测试使用useParams钩子从 URL 参数中获取 ID的组件。

我试图模拟useParams钩子,使其不调用实际方法,但它不起作用。我仍然得到TypeError: Cannot read property 'match' of undefined,所以它调用了实际的useParams,而不是我的模拟。

我的组件:

import React from 'react';
import { useParams } from 'react-router-dom';

export default () => {

  const { id } = useParams();

  return <div>{id}</div>;

};
Run Code Online (Sandbox Code Playgroud)

测试:

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import React from 'react';
import Header from './header';
import { shallow } from 'enzyme';

Enzyme.configure({ adapter: new Adapter() });

describe('<Header />', () => {

  jest.mock('react-router-dom', …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs react-router enzyme react-hooks

16
推荐指数
3
解决办法
1万
查看次数

标签 统计

enzyme ×1

jestjs ×1

react-hooks ×1

react-router ×1

reactjs ×1