Angular的HttpTestingController无法匹配带参数的URL
创始人
2024-10-24 06:00:55
0

当使用HttpTestingController模拟HTTP请求时,有时会出现无法匹配带参数的URL的问题。此时需要通过传递HttpParams对象来解决这一问题。

以下是一个使用HttpParams对象传递参数的代码示例:

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

describe('MyService', () => {
  let service: MyService;
  let httpClient: HttpClient;
  let httpTestingController: HttpTestingController;

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

    service = TestBed.inject(MyService);
    httpTestingController = TestBed.inject(HttpTestingController);
    httpClient = TestBed.inject(HttpClient);
  });

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

  it('should send request with query string parameter', () => {
    // Define the value we expect to be returned by the mock backend
    const expectedValue = 'value';

    // Set up the request params
    const params = new HttpParams().set('paramName', 'paramValue');

    // Use the HttpClient to send the request and subscribe to the response
    httpClient.get('https://my-api.com/api-endpoint', {params}).subscribe((response) => {
      expect(response).toEqual(expectedValue);
    });

    // Define the mock response and pass it to the expectOne method of the HttpTestingController
    const req = httpTestingController.expectOne('https://my-api.com/api-endpoint?paramName=paramValue');
    req.flush(expectedValue);
  });
});

在上述代码中,我们通过创建一个HttpParams对象并传递给HttpClient的get方法来设置请求的参数。然后,我们使用HttpTestingController的expectOne方法来定义模拟的响应并指定带参数的URL来匹配请求。最后,我们通过调用flush方法将预期的响应返回给请求。

这种做法可以帮助我们解决HttpTestingController无法匹配带参数的URL的问题。

相关内容

热门资讯

解迷一下!佛手在线大菠萝可以作... 解迷一下!佛手在线大菠萝可以作弊码,新星游辅助软件下载,都是有挂(哔哩哔哩)1、佛手在线大菠萝可以作...
解密一下!广西优乐免费辅助,陕... 解密一下!广西优乐免费辅助,陕西奇迹打锅子破解,确实是真的有挂(哔哩哔哩)1、让任何用户在无需广西优...
科普一下!陕西三带辅助,新九天... 科普一下!陕西三带辅助,新九天辅助,总是存在有挂(哔哩哔哩)该软件可以轻松地帮助玩家将陕西三带辅助外...
揭幕一下!闲聚辅助器,八仙游戏... 揭幕一下!闲聚辅助器,八仙游戏辅助,都是是真的有挂(哔哩哔哩)1、进入游戏-大厅左侧-新手福利-激活...
详细一下!多乐够级辅助,浙江游... 详细一下!多乐够级辅助,浙江游戏大厅修改器,原来有挂(哔哩哔哩)多乐够级辅助透视方法中分为三种模型:...
解谜一下!小程序牵手跑得有外挂... 解谜一下!小程序牵手跑得有外挂吗,人海大厅脚本,原来是真的有挂(哔哩哔哩)1、进入到小程序牵手跑得有...
开挂一下!内蒙麻将外卦神器下载... 开挂一下!内蒙麻将外卦神器下载,上饶中至能操控吗,本来真的是有挂(哔哩哔哩)内蒙麻将外卦神器下载透视...
教你一下!点我达辅助,玄龙辅助... 教你一下!点我达辅助,玄龙辅助工具,原来有挂(哔哩哔哩)1、点我达辅助免费辅助多个强度级别选择2、点...
曝光一下!钱塘十三水透视,一起... 曝光一下!钱塘十三水透视,一起宁德钓蟹辅助器,竟然存在有挂(哔哩哔哩)1、钱塘十三水透视透视辅助软件...
解密一下!决战十三水辅助,吉祥... 解密一下!决战十三水辅助,吉祥填大坑技巧,确实是真的有挂(哔哩哔哩)1、完成决战十三水辅助有辅助插件...