0
私は今度は角2を書いていますが、私は最初のジャスミンテストを書いているだけで、少し難しかったです。私は、CanActivate
サービスの実装方法CanActivate
が動作していることをテストしようとしており、期待通りにtrue
またはfalse
を返しています。ジャスミンテストでRouterStateSnapshotを黙って
私の方法は、次のようになります。私のテストの
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
return this.store$
.map((store: StoreState) => store.currentUser)
.first()
.map((user) => {
if (user.isAuthenticated) {
return true;
}
// TODO: This needs refactoring. Need to provide RouterStateSnapshot in test,
// rather than ignoring it!
this.redirectUrl = state ? state.url : '';
this.injector.get(Router).navigate(['/login']);
return false;
});
}
抽出物は、以下のようになります。私はservice.canActivate
に/スタブ/私のコールの何でも二番目のパラメータを模擬するにはどうすればよい
service = TestBed.get(AuthGuardService);
it('should prevent navigation',() => {
service.canActivate(null, null).subscribe((res) => expect(res).toBeTruthy());
});
、単純にヌルを渡すのではなく、