Я пишу тестовые чехлы для угловых компонентов.Как издеваться над наблюдаемым потоком при тестировании угловых компонентов?
Я создал сервис, который использует наблюдаемый поток, как показано ниже:
import {Injectable} from '@angular/core'
import {Subject} from 'rxjs/Subject';
import {User} from './user.model';
@Injectable()
export class UserService {
selectedUserInstance:User = new User();
// Observable selectedUser source
private selectedUserSource = new Subject<User>();
// Observable selectColumn stream
selectedUser$ = this.selectedUserSource.asObservable();
// service command
selectUser(user:User) {
this.selectedUserInstance=user;
this.selectedUserSource.next(user);
}
}
Теперь в моем компоненте я подписался к этому потоку, как:
getSelectedUser() {
this.subscriptionUser = this.userService.selectedUser$.subscribe(
selectedUser => {
this.selectedUser = selectedUser;
}
);
}
Сейчас в моем файле spec.ts, Я хочу высмеять этот поток как:
spyOn(userService, 'selectedUser$')
.and.returnValue(Observable.of({
'name': 'bhushan',
'desc': 'student'
}));
Но он продолжает давать мне следующие ошибки:
Error: spyOn could not find an object to spy upon for selectColumn$()
есть ли способ сделать это?
Я застрял в этой проблеме в течение очень долгого времени.
любые входы?
благодаря