Branches on constructor not covered

2020-06-12 02:43发布

I am creating my unit tests with Jasmine and I have a question about the branch covered.

Does anyone know why the code part shows that the branches are not covered as we can see below?

enter image description here

This is the unit test:

describe('MyComponent', () => {
  let component: MyComponent;
  let fixture: ComponentFixture<MyComponent>;
  let myService: MyService;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ MyComponent ],
      imports: [ MaterializeModule, FormsModule, ReactiveFormsModule, HttpModule ],
      providers: [
        MyService,
        FormBuilder
      ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(MyComponent);
    component = fixture.componentInstance;
    slotsService = TestBed.get(MyService);
    fixture.detectChanges();
  });

  function updateForm(name, surname) {
    component.myForm.controls['name'].setValue(name);
    component.myForm.controls['surname'].setValue(name);
  }

  it('should create', () => {
    expect(component).toBeTruthy();
  });
}

3条回答
劫难
2楼-- · 2020-06-12 03:37

I've had the same issue for months from the moment I upgraded my projects to angular 4. Unfortunately it is a bug with the angular-cli version 1 and angular 4.

This bug is already logged in the angular-cli project: Test-coverage says that coverage is not 100%, but it truly is! #5871. Unfortunately at the moment, this issue is still open.

This is a snapshot from that logged issue, which matches the one you are asking about:

enter image description here

查看更多
可以哭但决不认输i
3楼-- · 2020-06-12 03:43

If you are facing this problem and , nevertheless, want to reach 100% branch coverage, there is at least a workaround available (see https://github.com/angular/angular-cli/issues/5526#issuecomment-324429322).

Simply add /* istanbul ignore next */ after the class export (without any line breaks):

export class InternalComponent {
    constructor(private authService: any) { 
    }
} /* istanbul ignore next */
查看更多
Summer. ? 凉城
4楼-- · 2020-06-12 03:47

For Angular 2+ projects, this is now fixed if you upgrade to Angular CLI 1.5.

GitHub post: https://github.com/angular/angular-cli/issues/5526

查看更多
登录 后发表回答