typescript - Hur kan jag mocka angular-auth-oidc-klienten för att returnera falska data
Hur kan jag göra en mock av angular-auth-oidc-client för att returnera någon falsk token med karma-jasmine. Nedan är koden som jag behöver skriva ett enhetstest för.
getToken() {
return this.oidcSecurityService.getToken();
}
Svar #1
Här är min artikel som täcker alla sådana grundläggande testscenarier att börja med. Det finns en annan artikel som specifikt behandlar detta fall. Känn dig fri att ge din feedback
Du behöver skapa en stub som kommer att mocka beteendet hos oidcSecurityService,
export class OidcSecurityServiceStub{
getToken(){
return 'some_token_eVbnasdQ324';
}
// similarly mock other methods "oidcSecurityService" as per the component requirement
}
använd sedan i spec-filen useClass som nedan i TestBed:
TestBed.configureTestingModule({
declarations: [ WhateverComponent],
providers: [ {provide: OidcSecurityService(or whatever the name is), useClass: OidcSecurityServiceStub} ]
});
Svar #2
Jag antar att du testar en komponent. Du kan prova metoden som nämns här: https://angular.io/guide/testing#final-setup-and-tests.
Redigera och utdrag från webbplatsen:
let userServiceStub: Partial<UserService>;
beforeEach(() => {
// stub UserService for test purposes
userServiceStub = {
isLoggedIn: true,
user: { name: 'Test User'}
};
TestBed.configureTestingModule({
declarations: [ WelcomeComponent ],
providers: [ {provide: UserService, useValue: userServiceStub } ]
});
fixture = TestBed.createComponent(WelcomeComponent);
comp = fixture.componentInstance;
// UserService from the root injector
userService = TestBed.get(UserService);
// get the "welcome" element by CSS selector (e.g., by class name)
el = fixture.nativeElement.querySelector('.welcome');
});
