【问题标题】:TypeError: Cannot read properties of null (reading 'createEvent')TypeError:无法读取 null 的属性(正在读取 \'createEvent\')
【发布时间】:2022-10-21 02:26:27
【问题描述】:

我编写了一个简单的测试用例,它检查鼠标悬停在反应组件中的工具提示值

it("displays XYZ Information with 'Code' in a tooltip", async () => {
    (useRouter as jest.Mock).mockImplementation(() => ({ locale: "en-us" }));
    ....
    const { container } = renderPage(<Comp {...comprops} FLAG={true} />);
    await screen.findByRole("button", { name: /settings/i });
    const creatorCodeTooltip = container.querySelector(".tooltip-element");
    expect(creatorCodeTooltip).toBeInTheDocument();

    userEvent.hover(creatorCodeTooltip);

    waitFor(() => {
      expect(screen.queryByText(/TESTCREATORCODE1P8/i)).toBeInTheDocument();
    });
  });

但是得到这个错误

node_modules/react-dom/cjs/react-dom.development.js:3905
      var evt = document.createEvent('Event');
                         ^

TypeError: Cannot read properties of null (reading 'createEvent')
    at Object.invokeGuardedCallbackDev (.../node_modules/react-dom/cjs/react-dom.development.js:3905:26)
    at invokeGuardedCallback (.../node_modules/react-dom/cjs/react-dom.development.js:4056:31)
    at flushPassiveEffectsImpl (.../node_modules/react-dom/cjs/react-dom.development.js:23543:11)
    at unstable_runWithPriority (.../node_modules/scheduler/cjs/scheduler.development.js:468:12)
    at runWithPriority$1 (.../node_modules/react-dom/cjs/react-dom.development.js:11276:10)
    at flushPassiveEffects (.../node_modules/react-dom/cjs/react-dom.development.js:23447:14)
    at Object.<anonymous>.flushWork (.../node_modules/react-dom/cjs/react-dom-test-utils.development.js:992:10)
    at Immediate.<anonymous> (.../node_modules/react-dom/cjs/react-dom-test-utils.development.js:1003:11)
    at processImmediate (node:internal/timers:466:21)

【问题讨论】:

    标签: reactjs jestjs react-testing-library


    【解决方案1】:

    这个问题通常伴随着测试用例中的异步代码,每当使用异步代码时,他们必须在函数级别使用 await 关键字。

    在这里,我使用的是异步,但在导致问题的“waitfor”之前缺少“await”

    await waitFor(() => {
      expect(screen.queryByText(/TESTCREATORCODE1P8/i)).toBeInTheDocument();
    });
    

    https://github.com/testing-library/react-testing-library/issues/1027

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 2020-06-15
      • 2022-01-12
      • 2021-12-04
      • 2021-12-17
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多