Я новичок в Jasmine для Angular 5.
Я пытаюсь написать тестовый пример, но в своем отчете о покрытии я всегда получаю ngOnInit () t (), не покрытый:
ниже - мой файл спецификаций, я передаю ноль в конструктор моего компонента, но на самом деле ему нужен сервис:
let component: LoginPageHeaderComponent;
let fixture: ComponentFixture<LoginPageHeaderComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LoginPageHeaderComponent ],
providers: [ ServerBindingService ],
imports: [ HttpClientTestingModule]
})
.compileComponents();
component = new LoginPageHeaderComponent(null);
}));
it('Should initialize all variables ', async(() => {
component.ngOnInit();
const a = component.isNetworkCallFinsihed;
const b = component.allLeftHeaderOptions$;
const c = component.allRightHeaderOptions$;
component.ngOnInit();
fixture.detectChanges();
expect (a).toBeTruthy() ;
}));
Пожалуйста, дайте мне знать, что мне не хватает, иЯ должен добавить сюда.
edit
Добавление компонента
import { ServerBindingService } from './../server-binding.service';
import { Component, OnInit, NgModule } from '@angular/core';
import { Observable } from 'rxjs/Observable';
@NgModule({
})
@Component({
selector: 'app-login-page-header',
templateUrl: './login-page-header.component.html',
styleUrls: ['./login-page-header.component.css']
})
export class LoginPageHeaderComponent implements OnInit {
allLeftHeaderOptions$: Observable<any>;
allRightHeaderOptions$: Observable<any>;
isNetworkCallFinsihed: Observable<boolean>;
constructor(private serverBindingService: ServerBindingService) { }
ngOnInit() {
console.log('called');
this.allLeftHeaderOptions$ = this.serverBindingService.leftHeaderLinks$;
this.allRightHeaderOptions$ = this.serverBindingService.rightHeaderLinks$;
this.isNetworkCallFinsihed = this.serverBindingService.isNetworkCallFinished$;
}
}
Решение Я использовал fdescribe в моем другом тестеСлучай из-за этого мой текущий тест не был запущен.Ошибка Noob!