это мой сервис
my-service.service.ts
export class MyService {
constructor(public http: HttpClient) {}
createChatRecord (data, id) {
let logData = {"hist" : data , "uid": id };
let headers = new HttpHeaders();
headers = headers.set("Content-Type", "application/json");
let options = { headers: headers };
return this.http.post(MY_URL, logData, options)
.subscribe(res => res);
}
}
Это мой файл спецификации для вышеуказанного сервиса.
my-service.spec.ts
it("It should post", () => {
myservice.createChatRecord(mockData, mockId)
.subscribe((data: any) => {
expect(data).toBe(null);
});
const mockReq = httpMock.expectOne(MY_URL);
expect(mockReq.request.method).toBe("POST");
mockReq.flush(null);
httpMock.verify();
});
Если я добавлю подписку в файл спецификации, я получаю эту ошибку. Свойство «подписаться» не существует для типа «Подписка». Но если я удалю подписку в сервисе, эта ошибка не будет отображаться.
Мне нужно использовать подписку в моем сервисе. Как я могу проверить этот почтовый вызов без этой ошибки?
Любая помощь будет оценена по достоинству!
subscribe()
. Вам нужно иметь подписку в своем модульном тесте, чтобы проверить это, и в вашем коде, где вы вызываетеcreateChatRecord(...)
, вам также нужно будет подписаться там. 19.04.2018