Жасмин Юнит тестирование аргумента метода валидации HttpInterceptor - PullRequest
0 голосов
/ 05 октября 2018

У меня есть Angular (6) HttpInterceptor, как у этого метода перехвата:

intercept(req: HttpRequest<any>,next: HttpHandler): Observable<HttpEvent<any>> {

    if (this.translationService.currentLang) {
      req = req.clone({
        setHeaders: {
          'Accept-Language': this.translationService.currentLang
        }
      });
    }

    return next.handle(req);
  }

Как я могу получить это для модульного теста с жасмином и проверки того, что возвращаемый запрос содержит новый заголовок?Я знаю, что могу получить параметр с помощью

let next = jasmine.createSpyObj('httpHandler', ['handle']);
next.handle.calls.mostRecent();

Но как я могу проверить, что заголовок установлен?

1 Ответ

0 голосов
/ 05 октября 2018

Вот что я использовал для проверки перехватчика:

describe(`interceptor: yourinterceptor`, () => { // CHANGE HERE
  let httpMock: HttpTestingController;
  let injector: TestBed;

  function createTestModule(providers: Provider[] = []) {
    TestBed.configureTestingModule({
      imports: [HttpClientTestingModule, RouterTestingModule],
      providers: [
        {
          provide: HTTP_INTERCEPTORS,
          useClass: YOUR_INTERCEPTOR, // CHANGE HERE
          multi: true
        },
        ...providers
      ]
    });
    injector = getTestBed();
    httpMock = injector.get(HttpTestingController);
  }

  beforeEach(() => {
    // empty
  });

  afterEach(() => {
    httpMock.verify();
  });

  describe('request with headers', () => {
    beforeEach(() => {
      createTestModule();
    });
    it('should make the request with headers', inject([HttpClient], (http: HttpClient) => {
      http.get('/dummy').subscribe();
      const httpRequest: TestRequest = httpMock.expectOne('/dummy');
      expect(httpRequest.request.headers.has("YOUR_HEADER")).toBeTruthy(); // CHANGE HERE

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