Mar*_*ark 0 javascript jasmine rxjs angular
在我的组件内部,ngOnInit我有一个subscribe()内部调用组件函数:
ngOnInit(): void {
this.navigationService.itemReset$.subscribe(event => this.resetItem(event));
}
Run Code Online (Sandbox Code Playgroud)
在导航服务中我有:
btnPressed$: Subject<Event> = new Subject();
itemReset$: Observable<Event> = this.btnPressed$.asObservable();
keyDown(event: Event): void {
this.btnPressed$.next(event);
}
Run Code Online (Sandbox Code Playgroud)
我搜索了很多关于这个问题的信息,并在我的组件测试中尝试了类似的方法:
ngOnInit(): void {
this.navigationService.itemReset$.subscribe(event => this.resetItem(event));
}
Run Code Online (Sandbox Code Playgroud)
但仍然出现错误
TypeError: this.navigationService.itemReset$.subscribe is not a function
Run Code Online (Sandbox Code Playgroud)
知道吗,为什么它不起作用?我将非常感谢任何帮助!
小智 5
你很接近,但请记住你在嘲笑:
let navigationServiceMock = {
itemReset$: () => of({} as Event),
// tried this: itemReset$: jasmine.createSpy('itemReset$').and.returnValue(of({})),
};
Run Code Online (Sandbox Code Playgroud)
您有一个名为 itemReset$ 的模拟函数,它返回一个可观察值。
实际上,您希望 itemReset$ 成为可观察的。
因此,将您的模拟更改为:
let navigationServiceMock = {
itemReset$: of({} as Event),
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8210 次 |
| 最近记录: |