我的 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
. 我仍然需要核心代码来完成我想要做的事情。我只需要从我的测试中触发或发出消息事件