Тип 'SpyObj «нельзя назначить типу» {getPartner: Spy; рассчитать риск: шпион; postClientData: Spy; }». Jas - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь выполнить некоторые юнит-тесты, следуя документации 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 "

error message

Я пробовал много возможностей, чтобы исправить эту ошибку, но безуспешно

В моем сервисе реализовано 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",
     ...
}

Послушайте, я только хотел бы решить эту проблему, и, если возможно, кто-нибудь поможет мне Выполните модульное тестирование этих двух реализованных методов, таких как случай успеха и случай ошибки.

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