У меня есть сервис, который возвращает объект пользователя. Служба использует свойство publi c, которое устанавливается из частного.
private privateProperty: BehaviorSubject<User | Me | null> = new BehaviorSubject(
null
);
public publicProperty: Observable<
User | Me | null
> = this.privateProperty.asObservable();
Запрос на обслуживание вызывается с помощью частного метода внутри моего компонента, и у меня возникают трудности с его обработкой в модульном тесте. Я не уверен, как настроить мой тест так, чтобы он срабатывал в этом закрытом методе, и, таким образом, вызывал службу и устанавливал какое-то значение на определенное.
Это мой тест.
it('should set user oninit', ()=> {
let me: Me | User;
spyOn(userService, 'publicProperty').and.returnValue(of(userMock));
component.ngOnInit();
expect(userService.publicProperty).toHaveBeenCalled();
expect(component.me).toBeDefined();
});
Но при запуске теста я получаю этот неудавшийся результат:
ожидаем (шпион) .toHaveBeenCalled ()
Expected number of calls: >= 1
Received number of calls: 0
61 | component.ngOnInit();
62 |
> 63 | expect(userService.publicProperty).toHaveBeenCalled();
| ^
64 | expect(component.me).toBeDefined();
65 |
66 | });
Я не уверен, что Я делаю не так, кто-нибудь получил это на работу раньше?