如何从 Angular 5 测试模拟激活路由 - 错误 无法读取未定义的属性'params'



这是我使用 Activated Route 的构造函数

constructor(private route: ActivatedRoute) {
this.claimId = +route.snapshot.params["claimId"];
}

我试图以这种方式在测试中模拟这个 ActivateRoute:

beforeEach((() => {
TestBed.configureTestingModule({
declarations: [TransactionSummaryComponent],
providers: [{
provide: useClass: MockClaim
}, {
provide: ActivatedRoute, useValue: {
params: Observable.of({ claimId: 1 })
}
}]
});

但是在构建测试时,我收到一个错误:TypeError: Cannot read property 'params' of undefined

我已经改变了他们获取 id 的方式:

constructor(private route: ActivatedRoute) {
this.route.params.subscribe(params => {
this.claimId = +params["claimId"];
});
}

它现在有效。

最新更新