如何在茉莉花测试用例中模拟事件停止在角度6中的传播

时间:2019-02-04 10:02:16

标签: angular jasmine angular6

对于茉莉花测试用例,我如何模拟事件停止在角度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 请指导。

1 个答案:

答案 0 :(得分:1)

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

component.onItemRightClick(event,params.ci);