使用没有时间和异步的刻度时,Angular FakeAsync测试失败

我有这样的结构:

this.activityExecuted$.subscribe( (isTrue) => {

  this.myMethod(isTrue);
});

myMethod(isTrue: boolean): Promise<void> {
    await this.backendService.resetfunctions();


      if(isTrue) {
        this.backendService.requestTrueFor(activities.Someactivity);
      }

}

这是测试:

test('should call requestForTrue',() => {
    activityExecuted$$.next(true);
    tick();

    verify(BackendServiceMock.requestTrueFor(activities.Someactivity)).once();
  }));

BackendServiceMock是ts-mockito模拟。

when(BackendServiceMock.resetfunctions()).thenReturn();

除非我将tick();更改为tick(1000),否则测试将失败。如果我写的东西少于1000,则失败,并且我不明白为什么...

当我使用tick()调试测试时,我从不进入订阅。有1000个。

zhu_yun_yun 回答:使用没有时间和异步的刻度时,Angular FakeAsync测试失败

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3166679.html

大家都在问