не удалось запустить модульный тест для компонента, который расширяет базовый класс в angular

Я пытаюсь написать модульный тест для компонента, который расширяет базовый класс.

component.ts

   export class DesktopPresentationAreaComponent extends AbstractPresentationComponent {
            constructor() {
                super(store, webcast);
            }
   }

базовый класс

export abstract class AbstractPresentationComponent {
    constructor(protected store: MainStorageService,
                protected webcast: WebcastService) {
        this.store.get('state').subscribe();
    }

когда я запускаю «ng test», он показывает следующую ошибку.

TypeError: Cannot read property 'subscribe' of undefined in AbstractPresentationComponent

как я могу решить эту проблему?


person Pranab V V    schedule 28.08.2019    source источник


Ответы (1)


Вам нужно получить экземпляр MainStorageService. Затем spyOn для 'store.get('state')'. Например,

Получить экземпляр службы

store = fixture.debugElement.injector.get(MainStorageService);

Шпионить за методом get

spyOn(store, 'get').and.callFake(() => {
    return Observable.from([]);
})
person Siddhartha Gupta    schedule 28.08.2019
comment
Я пытался, но выдает ту же ошибку. Не удалось смоделировать методы в базовом классе. Есть ли способ смоделировать базовый класс в компоненте? - person Pranab V V; 28.08.2019
comment
Опубликуйте свой компонент и код тестового файла, с которым вы пробовали - person Siddhartha Gupta; 28.08.2019