【发布时间】:2021-07-30 01:57:09
【问题描述】:
我认为通过使用 fakeAsync 包装器,我的测试不会自动运行订阅,并且我会通过手动调用 tick 来控制该部分,但情况似乎并非如此。例如,使用这种方法:
foo(): void {
of([1, 2, 3]).subscribe({
next: () => {
console.info('Subscription completed.')
this.value = true
},
error: (err: unknown) => console.error('error called')
})
}
并使用此规范进行测试:
it('should foo', fakeAsync(() => {
component.foo()
expect(component.value).toBeFalse()
}))
我看到订阅完成消息打印,因此预期失败。我以为 foo 方法会被调用,但是直到我在规范中添加了 tick() 调用后订阅才会完成。
我做错了什么?
【问题讨论】: