Angular单元测试HTTP调用-测试将查询参数分割为查询参数
创始人
2024-10-23 21:30:37
0

使用HttpTestingController拦截HTTP请求并检查查询参数是否正确。示例代码:

import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import { TestBed } from '@angular/core/testing';
import { HttpClient } from '@angular/common/http';

describe('my test', () => {
  let httpClient: HttpClient;
  let httpTestingController: HttpTestingController;

  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [HttpClientTestingModule],
      providers: [],
    });
    httpClient = TestBed.inject(HttpClient);
    httpTestingController = TestBed.inject(HttpTestingController);
  });

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

  it('should send correct query params', () => {
    const searchText = 'test';
    const expectedParams = { q: 'test', limit: 10 };

    httpClient.get('http://example.com/search?q=test&limit=10').subscribe();

    const req = httpTestingController.expectOne((request) => {
      return (
        request.url === 'http://example.com/search' &&
        request.params.get('q') === searchText &&
        request.params.get('limit') === expectedParams.limit.toString()
      );
    });

    req.flush({});
  });
});

在此示例中,我们使用HttpClientTestingModule模块和HttpTestingController类来创建一个模拟的HttpClient实例,并拦截发出的HTTP请求,以检查查询参数是否正确。我们使用expectOne函数来请求HTTP请求,并使用参数谓词来检查请求的URL和查询参数。如果参数匹配,我们将使用req.flush函数来模拟HTTP响应。

请注意,HttpTestingController会自动管理用于拦截HTTP请求的模拟XHR。在每个测试之后,请使用httpTestingController.verify函数来验证没有未处理的请求。

相关内容

热门资讯

1.9分钟了解!微扑克代打是真... 1.9分钟了解!微扑克代打是真的吗,微扑克ai机器人(微扑克)其实存在有挂(有挂秘笈)-哔哩哔哩微扑...
重大通报!微扑克职业代打,微扑... 重大通报!微扑克职业代打,微扑克透牌(微扑克)本来存在有挂(证实有挂)-哔哩哔哩1、重大通报!微扑克...
程序员教你!微扑克透牌真假的,... 程序员教你!微扑克透牌真假的,微扑克如何让系统发好牌(微扑克)都是是有挂(有挂细节)-哔哩哔哩1、微...
指导大家!微扑克辅助神器,微扑... 指导大家!微扑克辅助神器,微扑克透牌(微扑克)本来存在有挂(存在有挂)-哔哩哔哩小薇(透视辅助)致您...
玩家必看!微扑克辅助工具怎么下... 玩家必看!微扑克辅助工具怎么下载,微扑克ai机器人(微扑克)一贯是有挂(的确有挂)-哔哩哔哩1、微扑...
最新技巧!微扑克辅助手机,微扑... 最新技巧!微扑克辅助手机,微扑克透牌(微扑克)确实真的有挂(有挂详情)-哔哩哔哩;1)微扑克辅助手机...
今日公布!微扑克有假吗,微扑克... 今日公布!微扑克有假吗,微扑克透牌(微扑克)本来真的有挂(有挂详情)-哔哩哔哩;1、下载好微扑克有假...
一秒答解!微扑克辅助机器人,微... 您好,微扑克如何让系统发好牌这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】...
重大推荐!微扑克ai代打,微扑... 重大推荐!微扑克ai代打,微扑克ai机器人(微扑克)都是存在有挂(有挂秘笈)-哔哩哔哩;1、上手简单...
来一盘!微扑克辅助工具,微扑克... 来一盘!微扑克辅助工具,微扑克有挂么(微扑克)确实存在有挂(有挂详情)-哔哩哔哩1、微扑克辅助工具机...