Мой компонент ищет наличие параметра в route
в ngOnInit
.Если параметр отсутствует, он показывает ошибку.Я хочу проверить эту логику.
ngOnInit() {
this.id = this.route.snapshot.paramMap.get("id");
if(this.id != null) {
... } else{
console.log("didn't get id from the route");
this.showDialog(...);
}
}
Я написал следующую спецификацию.В спецификации параметр не передается в route
beforeEach(async() => {
fixture = TestBed.createComponent(QuestionDetailsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
fit('should show error if question details of a question can\'t be retrieved', () => {
spyOn(component,'showDialog');
expect(componetn.showDialog).toHaveBeenCalled();
});
, но мой тестовый пример не проходит по причине Expected spy showDialog to have been called
.
Полагаю, проблема в том, что showDialog
получаетвызывается, когда компонент создается до вызова it
.
Как проверить логику в ngOnInit
?Мне нужен компонент, прежде чем я смогу его протестировать (например, вызвать it
), и я хочу проверить логику, которая выполняется во время создания компонента.