【问题标题】:Error: Expected one matching request for criteria "Match method: GET, URL: /users", found none错误:应为条件“匹配方法:GET,URL:/users”提供一个匹配请求,但没有找到
【发布时间】:2020-06-21 16:38:27
【问题描述】:

我有一个非常简单的服务调用和一个 jasmine 测试。

服务调用:

    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”的匹配请求,但没有找到。

【问题讨论】:

标签: angular http testing jasmine


【解决方案1】:

这样试试

进口{ 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();
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2021-02-20
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2016-05-18
    相关资源
    最近更新 更多