Reactjs 如何更改已安装组件的历史记录以进行测试?

Reactjs 如何更改已安装组件的历史记录以进行测试?,reactjs,testing,react-router,jestjs,enzyme,Reactjs,Testing,React Router,Jestjs,Enzyme,在浏览react router的文档时,我发现了一个实用程序组件,可以帮助跟踪页面更改(用于任何需要的用途)。这是一个组件: export const PageTracker = (props: PageTrackerProps) => { const { callback } = props; let location = useLocation(); React.useEffect(() => { callback(location); }, [loca

在浏览react router的文档时,我发现了一个实用程序组件,可以帮助跟踪页面更改(用于任何需要的用途)。这是一个组件:

export const PageTracker = (props: PageTrackerProps) => {
  const { callback } = props;

  let location = useLocation();
  React.useEffect(() => {
    callback(location);
  }, [location, callback]);

  return null;
};
我想给它添加一个测试,以确保回调确实在位置更改时被调用,但无法确定

describe("<PageTracker />", () => {
  let wrapper;
  let history;

  test("The callback is called when route changes", () => {
    const mockCallback = jest.fn();

    wrapper = mount(
      <MemoryRouter initialEntries={["/"]}>
        <PageTracker callback={mockCallback} />
      </MemoryRouter>
    );

    history = wrapper.instance().history;
    expect(mockCallback).toBeCalledTimes(1);

    history.push("/new-url");

    expect(mockCallback).toBeCalledTimes(2);
  });
});
现在我在这一行得到一个错误
consthistory=wrapper.instance().history
const history=wrapper.instance().history

我对玩笑/酶没有太多的经验,希望你能给我指出正确的方向

describe("<PageTracker />", () => {

  test("The callback is called when route changes", () => {
    const mockCallback = jest.fn();

    const wrapper = mount(
      <MemoryRouter initialEntries={["/"]}>
        <PageTracker callback={mockCallback} />
      </MemoryRouter>
    );

    const history = wrapper.instance().history;
    expect(mockCallback).toBeCalledTimes(1);

    history.push("/new-url");

    expect(mockCallback).toBeCalledTimes(2);
  });
});