【发布时间】:2021-11-25 08:24:51
【问题描述】:
我正在使用 Angular 11 的应用程序。
我有一个 loginService,允许用户与他们的个人资料进行交互。 在我的应用程序中有 jwt 身份验证,并且每 30 分钟刷新一次令牌。
我的 LoginService 如下所示
@Injectable()
export class LoginService {
private intervalId: any;
constructor(private readonly http: HttpClient,
private readonly ngZone: NgZone) {
this.ngZone.runOutsideAngular(() => {
this.intervalId = setInterval(() => {
ngZone.run(() => {
this.renewJwtToken();
});
}, 1000 * 60 * 30);
});
}
callLogin(loginRequest: LoginRequest): Observable<HttpResponse<LoginResponse>> {
// call in order to login user
}
renewJwtToken() {
// call in order to renew the token
}
}
我的问题在于浅层测试(我们在其中创建 TestBed)。我正在使用 jasmine 3.8 和 karma 6.3.4
每个测试都返回以下错误
Error: Timeout - Async function did not complete within 5000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
at <Jasmine>
如果我注释 LoginService 构造函数的内容,一切正常。
如何在不禁用 LoginService 构造函数中的 setInterval 的情况下测试我的应用程序?
谢谢
【问题讨论】:
标签: angular jasmine karma-jasmine