我正在尝试对使用路由器的组件进行单元测试,我的代码是打字稿。在测试规范中有很多用于注入路由器的接收器,但是没有一个适用于我,有些在当前版本中不可用。我试过这个:
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
似乎不存在(还有吗?)。
在这种情况下我该怎么办?