HttpTestingController waitOne проверяет только конечную точку API - PullRequest
0 голосов
/ 13 сентября 2018

Я хотел бы только проверить, отправляется ли запрос в правильную конечную точку API. Например: у меня есть сервис, который отправляет запрос на http://localhost:port/sth/sth2, и я хочу chcek, только если было http://localhost:port. Я использую HttpTestingController и функцию allowOne, возможно ли это сделать?

1 Ответ

0 голосов
/ 13 сентября 2018

Это то, что вы хотели сделать?

Настройка

let httpClient: HttpClient;
let httpTestingController: HttpTestingController;

beforeEach(() => {
  TestBed.configureTestingModule({
    imports: [ HttpClientTestingModule ]
  });

  httpClient = TestBed.get(HttpClient);
  httpTestingController = TestBed.get(HttpTestingController);
});

Тест

it('can test HttpClient.get', () => {
  const testData: Data = {name: 'Test Data'};

  httpClient.get<Data>('http://localhost:8085/test/suite')
    .subscribe(data =>
      expect(data).toEqual(testData)
    );

  const request = httpTestingController.expectOne(
    (req: HttpRequest<any>) => req.url.includes('http://localhost:8085'));

  request.flush(testData);
  httpTestingController.verify();
});

Это пример из документации Angular, кроме васпередать функцию в expectOne, которая принимает req и возвращает логическое значение, которое проверяет, содержит ли URL-адрес запроса правильную конечную точку.

Конечно, вы поменяете HttpClient с вашим сервисом.

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