Угловая версия: "@ 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');
});
}