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

时间:2016-08-18 15:06:43

标签: unit-testing angular typescript jasmine angular2-routing

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

beforeEach(() => {
  addProviders([
    MyComponent,
    provideRouter([]),
    provide(APP_BASE_HREF, { useValue: '/' }),
    provide(ActivatedRoute, { useValue: {} })
  ]);
});

并收到错误消息

Error: Bootstrap at least one component before injecting Router.

当我尝试完全模拟路由器时:

class MockRouter {
  public navigate() {}
}

beforeEach(() => {
  addProviders([
    MyComponent,
    provide(Router, { useClass: MockRouter })
  ]);
});

测试套件完全停止并显示错误消息

TypeError: Attempting to configurable attribute of unconfigurable property.

在router_testing_module.d.ts中,他们建议:

beforeEach(() => {
   configureModule({
     modules: [RouterTestingModule],
     providers: [provideRoutes(
         [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}])]
   });
 });

但是函数configureModule似乎不存在(还有吗?)。

在这种情况下我该怎么办?

0 个答案:

没有答案