gpt4 book ai didi

angular - 如何为 Jasmine 测试用例模拟事件停止在 Angular 6 中的传播

转载 作者:行者123 更新时间:2023-12-04 13:20:03 26 4
gpt4 key购买 nike

我如何模拟 jasmine 测试用例的事件停止传播 Angular 6。

我正在尝试这个-

 it('should call the onItemRightClick method', () => {

event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
expect(event.stopPropagation).toHaveBeenCalled();
component.onItemRightClick(params.event, params.ci);
// expect(component.onItemRightClick).toHaveBeenCalled();

});

组件代码-

  onItemRightClick(event: MouseEvent, ci: CiWithKPIS) {
console.debug('Open context panel for CI', ci.name);
event.stopPropagation();
if (!this.isSelected(ci)) {
this._selectedItems = [ci];
this.onSelectedCisChanged.emit(this._selectedItems);
}
}

但这行不通。它给出错误 - TypeError: event.stopPropagation is not a function请指导。

最佳答案

您已经创建了对事件对象的监视,但在 component.onItemRightClick 方法中传递了不同的对象。使用以下行解决问题:

component.onItemRightClick(event, params.ci);

关于angular - 如何为 Jasmine 测试用例模拟事件停止在 Angular 6 中的传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com