我正在尝试测试向父窗口发送帖子消息的代码。
该代码按预期工作,但测试却没有。我已经调试了测试,并且确实调用了postMessage
,但是没有调用间谍。
let spyPostMessage;
beforeEach(function () {
spyPostMessage = jasmine.createSpy('message');
window.parent.addEventListener('message', () => {
spyPostMessage();
window.parent.removeEventListener('message');
});
});
测试:
it('should post reload to parent window', function () {
func.call(this, params);
expect(spyPostMessage).toHaveBeenCalled();
});
func
:
func(params) {
// some code
window.parent.postMessage('reloadPage', '*'); // this line is invoked
// some code
}
结果是Expected spy message to have been called
尽管我调试了它并调用了postMessage
。
我在做什么错?