Протестируйте почтовый метод в angular - PullRequest
0 голосов
/ 21 апреля 2020

Я хотел написать тест в 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, если это публикация или что-то подобное.

Если что-то неясно, я буду доступен для разъяснений.

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