Я выполняю модульное тестирование в Angular 6, но у меня возникают проблемы с тестированием этой IF
ветви.Я использую его для наблюдения за размером экрана и для определения количества отображаемых столбцов.Я борюсь с тем, как проверить внутри подписки, которая находится в ngOnInit()
.
Это
this.watcher = this.media.subscribe((change: MediaChange) =>....
покрытие кода показывает, что оно не входит в if
и else
этих услуг.Это было лучшее, что я мог сделать.Служба Media Change постоянно смотрит на размер экрана, чтобы решить, сколько столбцов будет отображаться в таблице
ngOnInit() {
this.watcher = this.media.subscribe((change: MediaChange) => {
this.activeMediaQuery = change ? `'${change.mqAlias}' = (${change.mediaQuery})` : '';
this.changeMqAlias = change.mqAlias;
if (this.changeMqAlias == this.changeSize.XS) {
this.displayedColumns = ['job', 'name', 'totalValue'];
} else {
this.displayedColumns = ['internalId', 'DateOfPublication', 'alias', 'job', 'name', 'totalValue'];
}
return change.mqAlias;
});
}
Тест файла
it('should create', () => {
fixture.whenStable().then(() => {
expect(component).toBeTruthy();
});
});
it('should create which 3 columns in mat table', () => {
fixture.whenStable().then(() => {
component.changeMqAlias = 'xs';
expect(component).toBeTruthy();
});
});
});