Я работаю над тестированием компонента, у которого есть подписка в методе ngOnInit. Работает нормально при работе в «диком», но тестирование не проходит, так как нет доступного объекта подписки Я попытался создать заглушку sv c для построения наблюдаемого объекта в моем модульном тесте, но не могу заставить его работать.
Вот мой код обслуживания и компонентов (abrv):
Компонент
ngOnInit() {
this.userSvc.user.subscribe(user => {
this.currentUser = user; //-- this.userSvc.user (which is an observable on that class) is available in the wild, but not when testing
})
}
UserService
//-- User Subscribe items
userSubject: BehaviorSubject<any> = new BehaviorSubject(null);
user = this.userSubject.asObservable(); // this is the property I'm subscribing to which gets set after login.
Вот мои настройки теста
//SvcStub
const usrSvcStub = {
user : {
FirstName: "Test",
LastName: "User",
Username: "testuser"
}
}
//Providers Config
providers: [
{provide: UserService, useValue: {usrSvcStub}}
]
Когда тест при запуске отладки я вижу, что он загружает мой "StubSv c", но пользователь не определен, и я не могу подписаться на него. Может ли кто-нибудь указать мне правильное направление? Приведенный ниже экран ie показывает, когда он загружает функцию компонента ngOnInit и подписывается на наблюдаемую услугу.
![enter image description here](https://i.stack.imgur.com/aMRam.png)