我有这样的结构:
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个。