Javascript 如何在angular 4单元测试中为ActivatedRoute的父路由创建MockActivatedRoute
假设我有一个访问父路由的组件,如下所示:Javascript 如何在angular 4单元测试中为ActivatedRoute的父路由创建MockActivatedRoute,javascript,angular,unit-testing,karma-jasmine,Javascript,Angular,Unit Testing,Karma Jasmine,假设我有一个访问父路由的组件,如下所示: ngOnInit() { this.sub = this.route.parent.parent.parent.params.subscribe(params => { this.siteId = params["siteId"]; this.loadContents(); this.loadTypes(this.siteId); });} providers: [ SiteService,
ngOnInit() {
this.sub = this.route.parent.parent.parent.params.subscribe(params => {
this.siteId = params["siteId"];
this.loadContents();
this.loadTypes(this.siteId);
});}
providers: [
SiteService,
UserService,
Modal,
Overlay,
{
provide: ActivatedRoute,
useValue: { parent: { parent: { parent: { 'params': Observable.from([{ 'siteId': '156' }]) } } } },
},
OverlayRenderer,
AuthHttp,
MessageService,
],
我为父路由提供假值,如下所示:
ngOnInit() {
this.sub = this.route.parent.parent.parent.params.subscribe(params => {
this.siteId = params["siteId"];
this.loadContents();
this.loadTypes(this.siteId);
});}
providers: [
SiteService,
UserService,
Modal,
Overlay,
{
provide: ActivatedRoute,
useValue: { parent: { parent: { parent: { 'params': Observable.from([{ 'siteId': '156' }]) } } } },
},
OverlayRenderer,
AuthHttp,
MessageService,
],
它给了我以下错误:
失败:无法读取未定义的属性“未定义”
第行:
useValue:{parent:{parent:{'params':可观察。从([{'siteId':'156'}])}开始
请告诉我我正在做什么。
我引用了以下链接:
,,
尝试params:of({'siteId':'156'})