$loggedIn = new BehaviorSubject<boolean>(false);
constructor(private authHttp: AuthenticatedHttp, private httpResponseHandlerService: HttpResponseHandlerService) {
this.$loggedIn.next(!this.jwtHelper.isTokenExpired(this.getToken()));
if (this.$loggedIn.getValue()) {
this.checkAuth().subscribe((response) => {
if (!response) {
this.logout();
}
});
}
}
有一个$loggedIn
值是可以观察到的,我需要在我的this.$loggedIn.next(true)
中创建一个存根值,该值应该为.spec.ts
。
答案 0 :(得分:0)
您可以监视this.jwtHelper.isTokenExpired()
以便返回测试所需的值。您可能仅有的陷阱是this.jwtHelper
是服务类的私有成员,因此监视起来并不容易。在这种情况下,测试可能建议您通过创建另一个私有方法来重新设计您的类:
private isTokenExpired(): boolean {
return this.jwtHelper.isTokenExpired(this.getToken());
}
因此,您可以在测试中对此进行监视:
spyOn(yourService, 'isTokenExpired').and.returnValue(false);