首页 > 解决方案 > 无法测试 canActivate() 的错误路径 - Angular2+

问题描述

任何人都可以帮助我测试确定我的应用程序的 AuthGuard 的 canActivate 函数的错误路径吗?

看来我在伪造RouterStateSnapshot...时遇到了麻烦

警卫

canActivate(
      next: ActivatedRouteSnapshot,
      state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {

    console.log(next);
    console.log(state);
    console.log(localStorage.getItem('token'));

标签: javascriptangulartypescript

解决方案


满足所有条件以通过虚假测试:

it('should return false', () => {
  spyOn(guard['authService'], 'getStoredToken').and.returnValue('');

  expect(guard.canActivate(null, { url: 'foo' } as any)).toEqual(false);
});

推荐阅读