Существует несколько вопросов, объявляющих об этой проблеме, но ни один из них не решил мою проблему, касающуюся службы, которую я тестирую 'ProcessoService'.Мой файл спецификаций прост, вот код:
import { TestBed, ComponentFixture, async } from '@angular/core/testing';
import { ProcessoService } from './processo.service';
import { PontuaAppConfig } from 'frontend-base';
import { AbstractCRUDService, BlockUiService, UtilsService } from 'serpro-web-base';
import { HttpClient } from '@angular/common/http';
import { ProcessoModule } from './processo.module';
class PontuaAppConfigStub {
baseApiUrl = '';
}
describe('Serviço Processo', () => {
let sut: ProcessoService;
let pontuaAppConfig: PontuaAppConfig;
let fixture: ComponentFixture<ProcessoService>;
beforeEach(done => (async () => {
TestBed.configureTestingModule({
providers: [
{ provide: HttpClient, useClass: HttpClient, deps: [] },
{ provide: PontuaAppConfig, useClass: PontuaAppConfigStub },
{ provide: AbstractCRUDService, useClass: ProcessoService },
ProcessoService,
BlockUiService,
UtilsService,
],
imports: [ProcessoModule],
declarations: []
});
pontuaAppConfig = TestBed.get(PontuaAppConfig);
fixture = TestBed.createComponent(ProcessoService);
sut = fixture.debugElement.injector.get(ProcessoService);
await TestBed.compileComponents();
})().then(done).catch(done.fail));
it('should be created', () => {
console.log(sut);
expect(sut).toBeTruthy();
});
it('should Get apiUrl', () => {
spyOn(pontuaAppConfig, 'baseApiUrl');
sut.getApiUrl();
expect(pontuaAppConfig.baseApiUrl).toMatch('');
});
it('should set local store for processos', () => {
spyOn(sut, 'listarCache').and.returnValue({subscribe: () => {}});
fixture.detectChanges();
expect(sut.listarCache()).toHaveBeenCalled();
expect(window.localStorage.getItem('processos')).not.toBeNull();
});
});
Все ошибки указывают на переменную sut каждый раз, когда она используется.Что мне здесь не хватает?Я использую Angular 7.1.1, Karma 3.1.1 и Jasmine 2.99 и ChromeHeadless 67