我已经对ngOnInit上的一个observable进行了修改,现在我正在尝试为此编写测试,这似乎不起作用。
这是我正在尝试测试的课程
ngOnInit() {
this.myService.updates$.pipe(takeUntil(unsusbribe$))
.subscribe(update => {
this.feeds = update;
})
}
这是我的单元测试
it('should set feeds when an update is sent', fakeAsync(() => {
const update = 'fakeUpdate';
component.ngOnInit();
const serviceSpy = spyOn(myService, 'updates$').and.returnValue(timer(500).pipe(mapTo(update)))
tick(500);
expect(serviceSpy).toHaveBeenCalled();
}))
此测试失败,错误Expected spy updates$ to have been called.
任何人都可以帮我解决这个问题。
正确使用间谍服务的方式。请试试这个。
it('should set feeds when an update is sent', fakeAsync(() => {
const update = 'fakeUpdate';
const serviceSpy = spyOn(myService, 'updates$');
serviceSpy.and.returnValue(timer(500).pipe(mapTo(update)))
tick(500);
expect(serviceSpy).toHaveBeenCalled();
}))