HttpTestingController expectOne проверяет только конечную точку api

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

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
4 367
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Настраивать

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, которая принимает запрос и возвращает логическое значение, которое проверяет, содержит ли URL-адрес запроса правильную конечную точку.

Конечно, вы замените HttpClient своей службой.

О да работает нормально. Я видел документы, но я новичок в Angular и машинописном тексте, поэтому я не знал, как передать такую ​​функцию, и не смог найти хороший пример. В любом случае, благодарю Вас.

Rolfrider 13.09.2018 14:07

Нет проблем :) Angular docs хороши, если вам когда-нибудь понадобится выяснить, что возможно. angular.io/api/common/http/testing/HttpTestingController

Wingnod 13.09.2018 14:10

Другие вопросы по теме