如何在Jasmine中将postMessage监视到父窗口?

时间:2018-09-16 11:29:11

标签: javascript jasmine spy

我正在尝试测试向父窗口发送帖子消息的代码。
该代码按预期工作,但测试却没有。我已经调试了测试,并且确实调用了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

我在做什么错?

0 个答案:

没有答案