将 @testing-library/user-event 更新到 v.14 时出错

Errors when updating @testing-library/user-event to v.14

我正在按照最新版本 @testing-library/user-event 的所有说明进行操作。

之前:

  test('request support action',() => {
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    userEvent.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });

之后:

  test('request support action', async () => {
    const user = userEvent.setup();
    
    render(<SupportSection requestSupport={requestSupport} />);

    const button = screen.getByRole('button');

    await user.click(button);

    expect(requestSupport).toHaveBeenCalled();
  });

requestSupport 在更高的范围内被嘲笑 const requestSupport = jest.fn();

我得到的错误是:

TypeError: range.cloneRange is not a function

我所有的测试在库更新之前都通过了,现在都失败了。

我终于找到了解决方案,错误发生是由于一些旧的模拟,需要以前的测试环境。所有必须做的就是从 jest 配置文件中删除以下内容:

global.document.createRange = () => ({ ... });