首页 > 解决方案 > Jasmine:Angular,“未采用其他路径”,但两个测试用例都通过了吗?

问题描述

我的测试覆盖率显示没有采用 else 路径,但是与组件方法对应的这两个测试功能都通过了。

组件方法:

 radioSelect(event : MatRadioChange){

  let radioSelect=event.value;
  this.schedulerForm.reset();
    if (radioSelect == 'dayReport'){
      this.dayReport = true;
      this.rangeReport = false;
      this.schedulerForm.get('schedulerCategory').setValue('dayReport');
    }else if(radioSelect == 'rangeReport'){
      this.dayReport = false;
      this.rangeReport = true;
      this.schedulerForm.get('schedulerCategory').setValue('rangeReport');

    }
  }

测试

  it('should call radioSelect on change radio-button',() => {
    let event = {value:"rangeReport"}
    let de = fixture.debugElement.query(By.css('mat-radio-group'));
    de.triggerEventHandler('change', event);

    expect(component.dayReport).toBe(false);
    expect(component.rangeReport).toBe(true);
    expect(component.schedulerForm.controls['schedulerCategory'].value).toBe('rangeReport')

  });

  it('should call radioSelect on change radio-button',() => {
    let event = {value:"dayReport"}
    let de = fixture.debugElement.query(By.css('mat-radio-group'));
    de.triggerEventHandler('change', event);

    expect(component.dayReport).toBe(true);
    expect(component.rangeReport).toBe(false);
    expect(component.schedulerForm.controls['schedulerCategory'].value).toBe('dayReport')

  });

谢谢你的洞察力我一直在纠结这个,SC

标签: angularunit-testingjasmine

解决方案


推荐阅读