Пробный активированный маршрут с параметрами в Angular - PullRequest
0 голосов
/ 03 марта 2020

Вопрос

Как смоделировать ActivatedRoutes в моих юнит-тестах?

Сервис:

  constructor(
    private route: ActivatedRoute,
    private knowledgeModelService: KnowledgeModelService
  ) {
    route.params.pipe(map(p => p.modelId)).subscribe((modelId) => {
      this.modelId = modelId;
    });
  }

Мой юнит-тест:

С макетом класс

  class ActivatedRouteMock {
    // params = of([{modelId: 'test1'}]);
    params = { paramMap: of( convertToParamMap( { modelId: 'test1' } ) ) }
  }

...

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ StatsComponent ],
      providers: [
        {
          provide: ActivatedRoute, useClass: ActivatedRouteMock
        },

Я пробовал diff. подходы от:

Angular2 RC5 Mock-активированные параметры маршрута

Angular2 как имитировать активированные параметры маршрута подписались

Модульный тест angular правильно активировать маршрут

Angular 4 - Сбой: не удается разрешить все параметры для ActivatedRoute: (?,?,?,?,?,?,? ,?)

Но я никуда не денусь.

Ошибка:

route.params.pipe is not a function

1 Ответ

1 голос
/ 03 марта 2020

Вы пробовали это так?

class ActivatedRouteMock {
    params = of( { modelId: 'test1' } )
}
...