Unit testing 单元测试期间注入路由器(rc.5,路由器3.0.0-rc.1)

Unit testing 单元测试期间注入路由器(rc.5,路由器3.0.0-rc.1),unit-testing,angular,typescript,jasmine,angular2-routing,Unit Testing,Angular,Typescript,Jasmine,Angular2 Routing,我正在尝试对使用路由器的组件进行单元测试,我的代码是typescript。在一个测试规范中有很多注入路由器的方法,但没有一种适合我,有些在当前版本中不可用。我试过这个: beforeEach(() => { addProviders([ MyComponent, provideRouter([]), provide(APP_BASE_HREF, { useValue: '/' }), provide(ActivatedRoute, { useValue:

我正在尝试对使用路由器的组件进行单元测试,我的代码是typescript。在一个测试规范中有很多注入路由器的方法,但没有一种适合我,有些在当前版本中不可用。我试过这个:

beforeEach(() => {
  addProviders([
    MyComponent,
    provideRouter([]),
    provide(APP_BASE_HREF, { useValue: '/' }),
    provide(ActivatedRoute, { useValue: {} })
  ]);
});
并收到了错误信息

Error: Bootstrap at least one component before injecting Router.
TypeError: Attempting to configurable attribute of unconfigurable property.
当我试图完全模拟路由器时:

class MockRouter {
  public navigate() {}
}

beforeEach(() => {
  addProviders([
    MyComponent,
    provide(Router, { useClass: MockRouter })
  ]);
});
测试套件完全停止,并显示错误消息

Error: Bootstrap at least one component before injecting Router.
TypeError: Attempting to configurable attribute of unconfigurable property.
在路由器测试模块d.ts中,他们建议:

beforeEach(() => {
   configureModule({
     modules: [RouterTestingModule],
     providers: [provideRoutes(
         [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}])]
   });
 });
但是功能
configureModule
似乎不存在(现在?不再存在了?)


在这种情况下我能做什么?

configureTestingModule应该是TestBed.configureTestingModule