Как написать покрытие кода для метода подписки с ключевым словом finalize в Angular Jamsine? - PullRequest
0 голосов
/ 21 марта 2019

Угловая версия: "@ angular / core": "6.1.7"

Jamsine версия: "жасмин-ядро": "~ 2.8.0"

Имя файла: app.component.ts (Метод внутри файла компонента)

testFunction() {
this.testClassService.testServiceFunction(data).pipe(takeWhile(() => this.testModel.subscriberFlag))
  .subscribe((response: string) => {
    console.log('Service covered');
}); 
}

Имя файла: app.component.service.ts (здесь функция testServiceFunction, вызываемая из вышеуказанного компонента)

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { AppConfig } from '../../../../config/app.config';
import { AppLocalConfig } from '../../../../config/app.local.config';
import { environment } from '../../../../environments/environment';

@Injectable()
export class TestClassService {
  constructor(private readonly http: HttpClient) {
    const appConfig: any = (environment.envName === 'local') ? AppLocalConfig.getConfig() : AppConfig.getConfig();
    this.endpoints = appConfig.api;
  }
  testServiceFunction() {
    return true;
  }
}

Имя файла: app.component.spec.ts спецификация для вышеуказанного метода testFunction (работает отлично)

it('spec to cover testFunction', () => {
  const response = 'success';
  spyOn(service, 'testServiceFunction').and.returnValue(of(response));
  component.testFunction();
});

Как написать спецификацию для метода подписки, указанного ниже, с ключевым словом finalize .?

testFunction() {
this.testClassService.testServiceFunction(data).pipe(takeWhile(() => this.testModel.subscriberFlag))
.pipe(finalize(() => {
    console.log('Finalize covered');
  }))
  .subscribe((response: string) => {
    console.log('Service covered');
  });
}
...