我需要能够模拟激活的路由参数才能测试我的组件.
到目前为止,这是我最好的尝试,但它不起作用.
{ provide: ActivatedRoute,useValue: { params: [ { 'id': 1 } ] } },
ActivatedRoute在实际组件中使用如下:
this.route.params.subscribe(params => { this.stateId = +params['id']; this.stateService.getState(this.stateId).then(state => { this.state = state; }); });
我目前尝试的错误很简单:
TypeError:undefined不是构造函数(评估’this.route.params.subscribe’)
任何帮助将不胜感激.
你的模拟必须反映它正在取代的对象.你.subscribe因为它返回一个observable,而不仅仅是对象,所以你的mock值也应该:
原文链接:https://www.f2er.com/angularjs/143679.htmlimport { Observable } from 'rxjs/Rx'; ... { provide: ActivatedRoute,useValue: { 'params': Observable.from([{ 'id': 1 }]) } }