【问题标题】:Angular Unit Testing for HostListener (Window Resize)HostListener 的 Angular 单元测试(窗口调整大小)
【发布时间】:2021-07-30 17:48:42
【问题描述】:

我有一个包含以下代码的组件文件

@HostListener('window:resize', ['$event'])
onResize(event) {
    this.width = event.target.innerWidth;
}

我想测试一下。我已尝试在我的规范文件中使用以下代码。

window.dispatchEvent(new Event("resize");
expect(component.onResize).toHaveBeenCalled();

但它不起作用。任何帮助将不胜感激。

【问题讨论】:

    标签: angular unit-testing jasmine karma-jasmine


    【解决方案1】:

    我遇到了同样的问题,我在 resize 事件触发的函数上使用 Spy 解决了。

     it('should trigger onResize method when window is resized', () => {
        const spyOnResize = spyOn(component, 'onResize');
        window.dispatchEvent(new Event('resize'));
        expect(spyOnResize).toHaveBeenCalled();
     });
    

    希望对你有帮助!

    【讨论】:

    • 它仍然失败。 “间谍 OnResize 已被调用”。不确定 dispatchEvent 是否正在调度 resize 事件。
    • @SayantanBanerjee 你能分享 stackblitz 链接以进一步检查吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 2019-09-23
    • 1970-01-01
    • 2013-02-10
    • 2018-12-13
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多