Мой компонент ищет параметр в 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
), и я хочу протестировать логику, которая выполняется во время создания компонента.