У меня есть компонент, который зависит от SearchAttributeService . Существует метод с именем searchAttributeValidation , который возвращает Subject . Я подписываюсь на эту тему следующим образом:
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.
Гдея ошибаюсь? Потратил на это целый день, но не смог разобраться в проблеме?