Создание теста из параметра запроса Angular, возвращаемого как обещание - PullRequest
0 голосов
/ 14 января 2019

У меня есть конфигурация TestBed со следующим провайдером:

{
provide: ActivatedRoute,
useValue: {
    queryParams: of({fooObservable: true})
  }
},

как мне написать шпион жасмина, который получает доступ к этому параметру запроса и проверяет, является ли он истинным или ложным? Я сделал следующее, но я не могу получить к нему доступ, чтобы проверить это. fooSpy = spyOn(this.ActivatedRoute.queryParams, 'queryParams');

1 Ответ

0 голосов
/ 15 января 2019

Это сложно. Вот как я это сделал:

const spyParamMap = jasmine.createSpyObj({get: null});
const mockActivatedRoute = { paramMap: of(spyParamMap) };

Тогда в массиве провайдеров: { provide: ActivatedRoute, useValue: mockActivatedRoute }

И, наконец, в тестах:

spyParamMap.get.and.returnValue('tFilename');
fixture.detectChanges();

В моем ngOnInit() есть следующий фрагмент:

this.route.paramMap.subscribe(params => {
    this.dlFilename = params.get('download');
    if (this.dlFilename) {
         // logic for if a filename is passed
    }

чтобы я мог передать результат в params.get() и проверить свою логику внутри if.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...