使用 Jest 和 React 测试库进行单元测试 React 单击外部组件

Unit testing React click outside component using Jest and react testing library

我在这里找到了这个实现,但它使用了酶。

向 window 添加事件也不起作用:

window.addEventListener('click', () => {
      console.log('click on window');
    });

有没有人在使用 jest 和“@testing-library/react”时遇到过这个问题?

如@Giorgio 所述:

fireEvent.click(document)

//or

userEvent.click(document.body);

我想提供一个最新的答案,它遵循与@eduardomoroni 所提议的原则相同的原则。 fireEvent 对我不起作用,所以我设法通过 userEvent api.

实现了它
userEvent.click(document.body);

此外,由于打字稿抱怨 document 无法传递给点击事件处理程序。相反,body 是更好的解决方案。

Argument of type 'Document' is not assignable to parameter of type 'TargetElement'.