Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在父组件中测试角度事件发射器?_Angular_Unit Testing - Fatal编程技术网

Angular 如何在父组件中测试角度事件发射器?

Angular 如何在父组件中测试角度事件发射器?,angular,unit-testing,Angular,Unit Testing,我想编写一个单元测试来测试父组件中的事件发射器 父组件中的html代码: 父组件中的组件ts代码: public removietem(项:摘要项):无效{ 如果(item.actionState!=“必需”){ this.wizardService.updateSummaryItem(项); } } 如何测试(removietem)=“removietem($event)”?向向导侧栏项目组添加一个类,如: <wizard-sidebar-item-group class="wiz

我想编写一个单元测试来测试父组件中的事件发射器

父组件中的html代码:


父组件中的组件ts代码:

public removietem(项:摘要项):无效{
如果(item.actionState!=“必需”){
this.wizardService.updateSummaryItem(项);
}
}

如何测试
(removietem)=“removietem($event)”

向向导侧栏项目组添加一个类,如:

<wizard-sidebar-item-group class="wizard" ... >

您可以通过获取对子组件的引用(使用debugElement)并通过直接发出事件进行欺骗,或者像实际用户那样使用UI触发子组件发出事件,来执行子组件发出此类事件所必需的操作。
it('remove item should be triggered', () => {
    fixture = TestBed.createComponent(MyParentComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();

    spyOn(component, 'removeItem');

    const wizardElement = fixture.debugElement.query(By.css('.wizard'));
    wizardElement.triggerEventHandler('removeItem', {});
    fixture.detectChanges();

    expect(component.removeItem).toHaveBeenCalled(); 
  });