Jasmine 组件的角度2单元测试

Jasmine 组件的角度2单元测试,jasmine,karma-jasmine,angular2-components,angular2-testing,Jasmine,Karma Jasmine,Angular2 Components,Angular2 Testing,我正在使用网页2的ng2 我不知道如何测试组件功能 这是我的组件 从“@angular/core”导入{Component,OnInit}; 从“../global.service”导入{GlobalDataService}; 从'@angular/Router'导入{Router}; @组成部分{ 选择器:“登录”, templateUrl:“./login.component.html” } 导出类登录组件{ constructorprivate gd:GlobalDataService,

我正在使用网页2的ng2

我不知道如何测试组件功能 这是我的组件

从“@angular/core”导入{Component,OnInit}; 从“../global.service”导入{GlobalDataService}; 从'@angular/Router'导入{Router}; @组成部分{ 选择器:“登录”, templateUrl:“./login.component.html” } 导出类登录组件{ constructorprivate gd:GlobalDataService,专用路由器:路由器{} 登录名:void{ this.gd.shareObj['role']='admin'; this.router.navigateByUrl'/login'; }
} 我会这样做:

class RouterStub {
  navigateByUrl(url: String) { return url; }
}

class GlobalDataServiceStub {
  shareObj: any = {};
}

describe('LoginComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [LoginComponent],
       providers: [
         { provide: GlobalDataService, useClass: GlobalDataServiceStub },
         { provide: Router, useClass: RouterStub }
       ]
    });

    fixture = TestBed.createComponent(LoginComponent);
    comp = fixture.componentInstance;
  });

  it('should set role to admin',
    inject([GlobalDataService], (gd: GlobalDataService) => {
        comp.login();
        expect(gd.shareObj['role']).toBe('admin');
    })
  );

});