angular - HostListener 的 Angular 单元测试(窗口调整大小)
问题描述
我有一个包含以下代码的组件文件
@HostListener('window:resize', ['$event'])
onResize(event) {
this.width = event.target.innerWidth;
}
我想测试一下。我已经尝试在我的规范文件中使用以下代码。
window.dispatchEvent(new Event("resize");
expect(component.onResize).toHaveBeenCalled();
但它不工作。任何帮助将不胜感激。
解决方案
我遇到了同样的问题,我在 resize 事件触发的函数上使用 Spy 解决了。
it('should trigger onResize method when window is resized', () => {
const spyOnResize = spyOn(component, 'onResize');
window.dispatchEvent(new Event('resize'));
expect(spyOnResize).toHaveBeenCalled();
});
希望能帮助到你!
推荐阅读
- selenium-chromedriver - 无法使用 selenium chrome 驱动程序
- rdf - 如何在 OWL 2 中为本体选择配置文件
- angular - Angular 5 和上滑动画
- c++ - 我使用了一个向量来创建一个类对象列表。初始化向量时如何使用参数调用构造函数?
- python - 'TypeError: slice indices must be integers or None or have an __index__ method' 整数索引错误
- node.js - 在 Angular 5 http GET 请求中返回部分字符串匹配
- javascript - 同一个 html 页面中的多个模式
- javascript - 如何防止 NetSuite 中显示错误?
- calabash - App Center 测试用例失败,抛出错误“shel”:启动时出错 {“message”=>“在 37282 上等待 Calabash 服务器。未启动。”,
- sequence - 为什么 Perl 6 序列 'A' ... 'AA' 只有一个元素?