Angular Ошибка типа TestBed.inject при инъекции в шпиона - PullRequest
0 голосов
/ 16 марта 2020

Я хочу внедрить сервис в serviceSpy так же, как показано в примере angular. Angular 9 https://angular.io/guide/testing#service -tests

let masterService: MasterService;
let valueServiceSpy: jasmine.SpyObj<ValueService>;

beforeEach(() => {
const spy = jasmine.createSpyObj('ValueService', ['getValue']);

TestBed.configureTestingModule({
// Provide both the service-to-test and its (spy) dependency
providers: [
  MasterService,
  { provide: ValueService, useValue: spy }
]
});
// Inject both the service-to-test and its (spy) dependency
masterService = TestBed.inject(MasterService);
valueServiceSpy = TestBed.inject(ValueService);
});

intellij показывает мне эту ошибку TS2322: типу 'ValueService' нельзя присвоить типу SpyObj<ValueService>

can кто-нибудь поможет?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

У меня была такая же проблема. Соответственно https://github.com/angular/angular/issues/35944 вы можете

valueServiceSpy = TestBed.inject(ValueService) as jasmine.SpyObj<ValueService>;

Это сработало для меня:)

0 голосов
/ 16 марта 2020

Попробуйте { provide: ValueService, useValue: spy as any }

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