Ошибка: Ожидается один соответствующий запрос по критериям «Метод соответствия: GET, URL: / users», не найден - PullRequest
0 голосов
/ 09 марта 2020

У меня очень простой сервисный звонок и тест на жасмин.

Сервисный звонок:

    getUserInfo() {
        return this.http.get('/users');
    }

Метод теста:

    it('should get user info', inject([UsersService, HttpTestingController], (service: UsersService, backend: HttpTestingController) => {
        const testUser = [{username: 'testLogin', firstName: 'testFName', lastName: 'testLName'}];
        service.getUserInfo().subscribe( user => {
            expect(user).toEqual(testUser);
        });
        backend.expectOne({
            method: 'GET',
            url: '/users'
        }).flush(testUser);
    }));

Что я? я делаю неправильно? Почему в карме говорится, что ошибка:

Ошибка: Ожидается один соответствующий запрос по критериям «Метод соответствия: GET, URL: / users», не найден.

1 Ответ

0 голосов
/ 10 марта 2020

Попробуйте вот так

import {HttpClientTestingModule, HttpTestingController} из "@ angular / common / http / testing";

import { ApiService } from "./api.service";

describe("ApiService", () => {
  let httpMock: HttpTestingController;
  let service: ApiService;
  const api_server="http://localhost:8080";

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

  beforeEach(() => {
    service = TestBed.get(ApiService);
    httpMock = TestBed.get(HttpTestingController);
  });

  it("should be created", () => {
    expect(service).toBeTruthy();
  });

  it("should test getUserInfo()", () => {
    const testUser = [{username: 'testLogin', firstName: 'testFName', lastName: 'testLName'}];
    service.getUserInfo().subscribe(res => {
      expect(res).toEqual(testUser);
    });
    const req = httpMock.expectOne(
      `${api_server}/users`
    );
    expect(req.request.method).toEqual("GET");
    req.flush(testUser);

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