У меня есть компонент, который зависит от SearchAttributeService. Существует метод, называемый службой searchAttributeValidation, который возвращает тему. Я подписываюсь на эту тему вот так:
attributeSearchValidation(): void {
this._searchAttributeService.searchAttributeValidation.subscribe((value: string) => {
if (value === this._searchAttributeService.emptyAttributeSearchData) {
this.searchAttributeIndicator = true;
} else if (value === this._searchAttributeService.clearEmptyAttributeSearchDataValidation) {
this.searchAttributeIndicator = false;
});
}
get searchAttributeValidation(): Subject<string> {
return this.searchAttributeValidationSubject;
}
Я пытаюсь протестировать этот метод так:
searchAttributeService = TestBed.get(SearchAttributeService);
let spy = spyOn(searchAttributeService, 'searchAttributeValidation').and.returnValue(of('EMPTY-DATA'));
component.attributeSearchValidation();
expect(spy).toHaveBeenCalled();
expect(component.searchAttributeIndicator).toBeTruthy();
Он вообще не вызывает метод searchAttributeValidation во время теста. Я даже предоставил сервис TestBed.configureTestingModule ({
Тест не проходит с сообщением: Ожидается, что был вызван spy searchAttributeValidation.
Где я ошибаюсь ?? Потратил на это целый день, но не мог понять, в чем проблема?