0

这是我的带有 ActivatedRoute 的构造函数

  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

4

1 回答 1

2

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

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

它现在有效。

于 2018-05-25T12:27:40.920 回答