Как имитировать параметры в маршрутизации в angular (жасмин)

#angular #jasmine

Вопрос:

Как издеваются над парами

 this.id = params['id'];
 

(угловой маршрутизатор) в тесте в жасмине?

Мой код:

 constructor(public activatedRoute: ActivatedRoute, private store: Store) { }
          
ngOnInit(): void {
  this.store.dispatch(new LoadCategoriesAction());
  this.store.dispatch(new LoadProductsByMainAction(false));
  this.sub = this.activatedRoute.params.subscribe(params => {
    this.id = params['id'];
    console.log("!!!!!!!!!!!!!");
    console.log(this.id);
    if (this.id) {
      this.store.dispatch(new LoadProductByIdAction(this.id));
    }
  })
}
 

Комментарии:

1. Вы читали angular.io/guide/testing-components-scenarios#routed-components ?

Ответ №1:

Вы должны создать макет для ActivatedRoute, что-то вроде приведенного ниже;

 providers: [
...,
{provide: ActivatedRoute, useValue: {params: of({id: '123'})}}
]