Unit testing 单元测试期间注入路由器(rc.5,路由器3.0.0-rc.1)
我正在尝试对使用路由器的组件进行单元测试,我的代码是typescript。在一个测试规范中有很多注入路由器的方法,但没有一种适合我,有些在当前版本中不可用。我试过这个: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:
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