【发布时间】:2018-09-03 22:03:00
【问题描述】:
所以我有一些这样的代码:
ngOnInit() {
this.openDialogWhenUploading();
}
openDialogWhenUploading() {
this.store.select(getFileIsUploading).pipe(
takeUntil(this.onDestory$),
delay(1000)
).subscribe(uploading => {
if(uploading === true) {
this.dialog.open()
}
})
}
为了更容易测试,我所做的是从 openDialogWhenUploading 方法返回一个 observable,然后在我的测试中订阅它,如下所示:
ngOnInit() {
this.openDialogWhenUploading().subscribe();
}
openDialogWhenUploading() {
return this.store.select(getFileIsUploading).pipe(
takeUntil(this.onDestory$),
delay(1000),
tap(uploading => {
if (uploading === true) {
this.dialog.open()
}
})
)
}
在我的测试中:
describe('openDialogWhenUploading', () => {
it('should open dialog when uploading', () => {
openDialogWhenUploading().subscribe(() => {
expect(dialg.open).toHaveBeenCalled();
})
})
})
有更好的解决方案吗?
【问题讨论】: