小编use*_*488的帖子

React Jest:从测试中触发“addEventListener”“消息”

我的 React 项目有一些代码用于监听消息事件

const onMessage = ({ data }) => {
  console.log('On onMessage has been fired');
}

window.addEventListener('message', onMessage);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何从我的测试套件中触发此事件?我尝试过诸如事件之类的库和许多诸如

test('Recieves message', async () => {
  //Some setup..

  //trigger the addEventListener('message')
  window.parent.postMessage('Hello', '*');  //doesn't work
  window.postMessage('Hello', '*'); //doesn't work
  const ee = new events.EventEmitter();
  ee.emit('Hello') //doesn't work

  //Some further tests...
})
Run Code Online (Sandbox Code Playgroud)

似乎什么都不起作用。请注意,我需要小心这个测试,我不会模拟并覆盖所有addEventListener. 我仍然需要核心代码来完成我想要做的事情。我只需要从我的测试中触发或发出消息事件

dom postmessage reactjs jestjs react-testing-library

7
推荐指数
2
解决办法
8301
查看次数