大佬教程收集整理的这篇文章主要介绍了单元测试 – 单元测试Angular 2 authGuard;间谍方法没有被调用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
AUTH-guard.service.ts
import { Injectable } from '@angular/core'; import { Router,CanActivate } from '@angular/router'; @Injectable() export class AuthGuardservice { constructor(private router:router) { } public canActivate() { const authToken = localStorage.getItem('auth-token'); const tokenExp = localStorage.getItem('auth-token-exp'); const hasAuth = (authToken && tokenExp); if(hasAuth && Date.Now() < +tokenExp){ return true; } this.router.navigate(['/login']); return false; } }
AUTH-guard.service.spec.ts
import { TESTBed,async,inject } from '@angular/core/tesTing'; import { RouterTesTingModule } from '@angular/router/tesTing'; import { AuthGuardservice } from './auth-guard.service'; describe('AuthGuardservice',() => { let service:AuthGuardservice = null; let router = { navigate: jasmine.createSpy('navigate') }; beforeEach(() => { TESTBed.configureTesTingModule({ providers: [ AuthGuardservice,{provide:routerTesTingModule,useValue:router} ],imports: [RouterTesTingModule] }); }); beforeEach(inject([AuthGuardservice],(agservice:AuthGuardservicE) => { service = agservice; })); it('checks if a user is valid',() => { expect(service.canActivate()).toBefalsy(); expect(router.navigatE).toHaveBeenCalled(); }); });
将RouterTesTingModule替换为Router,如示例中所示,回答抛出模块’DynamicTestModule’导入的意外值’undefined’.
import { TESTBed,inject } from '@angular/core/tesTing'; import { RouterTesTingModule } from '@angular/router/tesTing'; import { Router } from '@angular/router'; import { AuthGuardservice } from './auth-guard.service'; describe('AuthGuardservice',() => { beforeEach(() => { TESTBed.configureTesTingModule({ providers: [AuthGuardservice],imports: [RouterTesTingModule] }); }); it('checks if a user is valid',// inject your guard service AND Router async(inject([AuthGuardservice,Router],(auth,router) => { // add a spy spyOn(router,'navigate'); expect(auth.canActivate()).toBefalsy(); expect(router.navigatE).toHaveBeenCalled(); }) )); });
以上是大佬教程为你收集整理的单元测试 – 单元测试Angular 2 authGuard;间谍方法没有被调用全部内容,希望文章能够帮你解决单元测试 – 单元测试Angular 2 authGuard;间谍方法没有被调用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。