Фиктивная переменная подписки

#angular #jasmine #karma-jasmine

#angular #жасмин #карма-жасмин

Вопрос:

У меня есть переменная с именем stateSubscrition $, которую я использую для удержания и отмены подписки, и она работает хорошо. Но мне нужно знать, как имитировать stateSubscription $ для написания модульного теста для ondes

 stateSubscription$: Subscription;
...
this.stateSubscription$ = this.updatedScheduleActivities$.subscribe((x) => {
  this.loadGrid();
});
...
ngOnDestroy() {
  this.stateSubscription$.unsubscribe();
}
 

и в файле спецификации

 fdescribe('#onDestroy', () => {
    let component;
    beforeEach(() => {
      component = new VariableComponent(mockStore, mockForm);
      spyOnProperty(component,'stateSubscription

Я получаю такую ошибку, как издеваться над этим свойством??

 Error: stateSubscription$ property does not exist  


Ответ №1:

Вы всегда можете инициализировать stateSubcription$ с пустым Subscription

 stateSubscription$ = new Subscription();
 

Таким образом, вам не придется беспокоиться о undefined доступе к свойству.

,'get').and.returnValue(Observable);
component.ngOnDestroy();
});

it('should have called unsubscribe method', () => {
expect(component.stateSubscription$.unsubscribe).toHaveBeenCalled();
});

});
Я получаю такую ошибку, как издеваться над этим свойством??

Error: stateSubscription$ property does not exist

Ответ №1:

Вы всегда можете инициализировать stateSubcription$ с пустым Subscription


Таким образом, вам не придется беспокоиться о undefined доступе к свойству.