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

时间:2019-11-04 12:43:14

标签: angular jestjs angular-testing ts-mockito

我有这样的结构:

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个。

0 个答案:

没有答案