使用sinon在rxjs中模拟延迟

问题描述

我在rxjs中是noobie。我用RxJS编写了一个实际上上传文件代码

library(data.table)
aqDT <- data.table(airquality)
cln <- "Wind" # colnames is a function in base R,better not add confusion
aqDT[,paste0(cln,"_Month") := sum(get(cln)),by = Month]
aqDT

#      Ozone Solar.R Wind Temp Month Day Wind_Month
#   1:    41     190  7.4   67     5   1      360.3
#   2:    36     118  8.0   72     5   2      360.3
#   3:    12     149 12.6   74     5   3      360.3
#   4:    18     313 11.5   62     5   4      360.3
#   5:    NA      NA 14.3   56     5   5      360.3
#  ---                                             
# 149:    30     193  6.9   70     9  26      305.4
# 150:    NA     145 13.2   77     9  27      305.4
# 151:    14     191 14.3   75     9  28      305.4
# 152:    18     131  8.0   76     9  29      305.4
# 153:    20     223 11.5   68     9  30      305.4

在此之后,我从其他功能订阅了它:

   function uploadFiles(filesArray) {
           return from(filesArray).pipe(
               concatMap(val => of(val).pipe(delay(500))),bufferCount(2),mergeMap(this.doSomeValidation()),concatMap(val => of(val).pipe(delay(1000))),bufferCount(4),mergeMap(this.doUploadFile()),mergeMap(this.doCheckIfFileReachedDB()),);
   }

现在我要在UT中对此进行测试。

我为此使用了订阅和断言。

我的UT看起来像这样:

const I = this;
I.uploadFiles(filesArray).subscribe();

所以,我遇到的问题是:

  1. 它给我2000毫秒的超时时间。由于此测试用例有延迟。

我已经将lolex用于fakeTimers,但是没有用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)