Я пытаюсь выполнить некоторые юнит-тесты, следуя документации angular .io.
В https://angular.io/guide/testing#service -tests , в документации сказано, что я должен сделать что-то вроде этого в моем файле spe c:
let service: ConsultaPrevencaoService;
let httpClientSpy: { getPartner: jasmine.Spy, calculateRisk: jasmine.Spy, postClientData: jasmine.Spy }
beforeEach(() => {
httpClientSpy = jasmine.createSpyObj('HttpClient', ['getPartner', 'calculateRisk', 'postClientData']);
service = new ConsultaPrevencaoService(<any> httpClientSpy);
})
К сожалению, он имеет ошибку:
"Тип 'SpyObj' нельзя назначить для типа '{getPartner: Spy; : Spy; postClientData: Spy;} '. Jas "
Я пробовал много возможностей, чтобы исправить эту ошибку, но безуспешно
В моем сервисе реализовано 2 метода. Это простые методы, которые возвращают JSON. Первый возвращает объект, второй тоже возвращает объект. Здесь у меня нет проблем с кодом, это просто для вас, чтобы увидеть и помочь мне. Код ниже:
public postClientData(object: any): Observable<CalculoRisco> {
return this.http.post<any>(`${URL}/calculo_risco`, object).pipe(map((response: any) => response), catchError((msg: any) => msg)
);
}
public calculateRisk(id_risco: string): Observable<Risco> {
return this.http.get<any>(`${URL}/riscos/${id_risco}`).pipe(
map((response: any) => response), catchError((msg: any) => msg)
);
}
Вот мои devDependencies, только часть объявлений жасмина. Моя Angular версия - "@ angular / core": "~ 9.0.0" ...
"devDependencies": {
...
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
...
}
Послушайте, я только хотел бы решить эту проблему, и, если возможно, кто-нибудь поможет мне Выполните модульное тестирование этих двух реализованных методов, таких как случай успеха и случай ошибки.