首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟angular-auth-oidc客户端以返回假数据

如何模拟angular-auth-oidc客户端以返回假数据
EN

Stack Overflow用户
提问于 2019-07-25 18:09:43
回答 2查看 2.2K关注 0票数 1

如何使用karma-jasmine模拟angular-auth-oidc-client返回一些假令牌?下面是我编写单元测试用例所需的代码。

代码语言:javascript
复制
getToken() {
    return this.oidcSecurityService.getToken();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 13:44:49

Here is my article which covers all such basic testing scenarios开始。There is another article which specifically talks about this case。随时提供您的反馈

您需要创建一个模拟oidcSecurityService行为的stub

代码语言:javascript
复制
export class OidcSecurityServiceStub{
   getToken(){
      return 'some_token_eVbnasdQ324';
   }
   // similarly mock other methods "oidcSecurityService" as per the component requirement

}

然后在spec文件中,在TestBed中使用useClass,如下所示

代码语言:javascript
复制
TestBed.configureTestingModule({
     declarations: [ WhateverComponent],
     providers:    [ {provide: OidcSecurityService(or whatever the name is), useClass: OidcSecurityServiceStub} ]
  });
票数 1
EN

Stack Overflow用户

发布于 2019-07-25 19:17:34

我假设你在测试一个组件。您可以尝试这里提到的方法:https://angular.io/guide/testing#final-setup-and-tests

编辑和摘录自网站:

代码语言:javascript
复制
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');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57199468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档