【发布时间】:2021-10-15 18:08:28
【问题描述】:
我的 React 项目中有一些代码可以监听 message event。
const onMessage = ({ data }) => {
console.log('On onMessage has been fired');
}
window.addEventListener('message', onMessage);
有谁知道我如何从我的测试套件中触发此事件?我尝试过诸如events 之类的库以及诸如
之类的许多东西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...
})
似乎没有任何效果。请注意我需要小心这个测试,我不会模拟和覆盖所有addEventListener。我仍然需要核心代码来做我打算做的事情。我只需要从我的测试中触发或发出消息事件
【问题讨论】:
标签: reactjs dom jestjs react-testing-library postmessage