Я хотел написать тест в angular для метода записи. Я очень плохо знаком с тестированием в angular.
У меня есть этот сервис с методом post:
export class ResourceService implements ErrorHandler {
static readonly messageUrl: string = '/messages/data';
postData(pairs: Request): Observable<number> {
const url = `${this.makeUrl(ResourceService.messageUrl)}`;
return this.httpClient.post<number>(url, pairs).pipe(
first(),
retry(1),
catchError(error => {
return this.handleError(error);
})
);
}
}
export interface Request {
pId?: number;
sId?: number;
filter: Filter
}
Я просто хотел проверить, будет ли инициирован почтовый запрос.
Вот тест, который я написал:
describe('ResourceService', () => {
fit('should test if the request is triggered', async(async () => {
TestBed.configureTestingModule({
imports: [
DataModule,
HttpClientTestingModule
],
});
let httpTestingController: HttpTestingController = TestBed.get(HttpTestingController);
const service: ResourceService = TestBed.get(ResourceService);
const mockData: Request = {
sId: 242,
pId: 1020,
filter: new Filter()
};
service.postData(mockData).subscribe(data =>
expect(data).toBe(1)
);
const req = httpTestingController.expectOne(service.makeUrl(`/messages/data`));
expect(req.request.method).toEqual('POST');
req.flush(mockData);
httpTestingController.verify();
}));
});
К сожалению, я получаю сообщение об ошибке: Ожидается один соответствующий запрос по критериям "Соответствующий URL: http://localhost: 8088 / messages / data", ничего не найдено.
Затем я попытался проверить, будет ли вызываться сообщение без фиктивных данных, и я получил ту же ошибку. Что бы было проще всего хотя бы проверить этот метод? Например, проверьте, является ли этот метод публикацией, и верните true, если это публикация или что-то подобное.
Если что-то неясно, я буду доступен для разъяснений.