gpt4 book ai didi

javascript - 尝试测试 RxJS 间隔时未定义的值

转载 作者:行者123 更新时间:2023-11-28 20:35:02 33 4
gpt4 key购买 nike

我正在 ngOnInit Hook 中执行 initializeTimer 方法。在 initializeTimer 中,我定义了 rxjs 间隔,它负责递减组件 Input 中传递的数字。现在我想测试这个方法,但是我得到一个错误

Expected undefined to equal 9.

我不知道如何测试这个订阅。我读了一些关于 fakeAsync 和 tick 的内容,但它似乎对我不起作用。由于未触发 ngOnInit 的形式。

组件

@Input() timeLeft: number;
timer: number;
observableTimer: Subscription;

constructor() { }

ngOnInit() {
this.initializeTimer();
}

initializeTimer() {
this.observableTimer = interval(1000).subscribe(val => {
const timeLeft = this.timeLeft - val;
if (timeLeft === 0) {
this.onTimesUp();
}
this.timer = timeLeft;
});
}

测试

it('expect timer to decrement', fakeAsync(() => {
component.timeLeft = 10;
fixture.detectChanges();
tick(1000);
fixture.detectChanges();
expect(component.timer).toEqual(9);
}));

最佳答案

不幸的是,使用 fakeAsynctick 测试 rxjs interval 时存在一个长期存在的错误。您可以在此 link 下阅读更多相关信息.

关于javascript - 尝试测试 RxJS 间隔时未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57428436/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com