使用@testing-library/user-event 进行虚假点击

Fake click using @testing-library/user-event

我想测试在 React 中单击 link 时是否发生跟踪事件。但是,由于单击 link 时发生的情况,我确实得到了 Error: Not implemented: navigation。我正在开玩笑和 @testing-library/user-event.

进行测试

我现在想要模拟或存根,以便在触发 userEvent 时不会发生导航尝试,因为我只对发生的跟踪事件感兴趣。我该怎么做?

userEvent.click(item);

expect(Ga.trackEvent).toHaveBeenCalledTimes(1);
expect(Ga.trackEvent).toHaveBeenCalledWith('myModal', 'open'); 

我认为您的测试实际上是在尝试使用 window.location

进行导航

您需要在尝试用户事件之前模拟它

let assignMock = jest.fn();

delete window.location;
window.location = { assign: assignMock };

afterEach(() => {
  assignMock.mockClear();
});