unit test spec run reporter karma coverage code unit-testing angular jasmine karma-jasmine karma-coverage

unit-testing - spec - testing angular 2



Las sucursales en el constructor no están cubiertas (3)

He tenido el mismo problema durante meses desde el momento en que actualicé mis proyectos al angular 4. Desafortunadamente es un error con la versión angular 1 y angular 4.

Este error ya está registrado en el proyecto angular-cli : la cobertura de prueba dice que la cobertura no es del 100%, ¡pero realmente lo es! # 5871 . Desafortunadamente en este momento, este problema aún está abierto.

Esta es una instantánea de ese problema registrado, que coincide con el que está preguntando:

Estoy creando mis pruebas unitarias con Jasmine y tengo una pregunta sobre la rama cubierta.

¿Alguien sabe por qué la parte del código muestra que las ramas no están cubiertas, como podemos ver a continuación?

Esta es la prueba de unidad:

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(); }); }



Si se enfrenta a este problema y, sin embargo, desea alcanzar el 100% de cobertura de sucursal, existe al menos una solución disponible (consulte https://github.com/angular/angular-cli/issues/5526#issuecomment-324429322 ).

Simplemente agregue /* istanbul ignore next */ después de la exportación de la clase (sin ningún salto de línea):

export class InternalComponent { constructor(private authService: any) { } } /* istanbul ignore next */