如何在nGoninit中对setInterval进行单元测试? [英] how can i do unit test for setInterval in ngoninit?

查看:22
本文介绍了如何在nGoninit中对setInterval进行单元测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个REFRESH()函数来执行更新的数据方案,这里我尝试实现的是在没有用户交互的情况下每隔1分钟自动刷新一次,因此我在nGoninit中使用setInterval以便可以每隔60秒执行一次,并且在ngDestroy中清除这些间隔;
这是组件。ts

ngOnInit(): any {
 this.refresh();
 this.interval = setInterval(() => {
                      if (this.hideLog) {
                        this.updateWorkflow();
                      } else {
                        this.refresh();
                      }
                  },                            60000); 

}



ngOnDestroy(): void {
  this.clearInt();
}
clearInt(): void {
  if (this.interval) {
    clearInterval(this.interval);
  }
}

如何在spec.ts文件中为此添加测试,以便nGonint测试描述应该通过

运行我的测试用例时出错:

错误:队列中仍有1个定期计时器。

有人能帮我这个忙吗

推荐答案

我在测试用例😊✌的Expect之后,使用以下代码获得以下错误

错误:1个定期计时器仍在队列中

 spyOn(window, 'setInterval').and.callThrough();

 flush();
 flushMicrotasks();
 discardPeriodicTasks();

这篇关于如何在nGoninit中对setInterval进行单元测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆