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、一分钟揭秘!姚...
记者发布!青鸟大厅辅助器功能a... 记者发布!青鸟大厅辅助器功能app,青鸟大厅确实有辅助器app(有辅助挂细节)1、青鸟大厅公共底牌简...
重要通知!娱网麻将辅助功能工具... 重要通知!娱网麻将辅助功能工具,娱网麻将一直有辅助工具(有辅助挂攻略)1、该软件可以轻松地帮助玩家将...
分享实测!淮安麻将辅助功能脚本... 分享实测!淮安麻将辅助功能脚本,淮安麻将一贯有辅助脚本(有辅助挂功能)1、淮安麻将脚本辅助下载、淮安...
推荐一款!友乐开挂功能插件,友... 推荐一款!友乐开挂功能插件,友乐其实存在有开挂插件(有辅助挂工具)推荐一款!友乐开挂功能插件,友乐其...
分享认知!拱趴游戏辅助功能技巧... 分享认知!拱趴游戏辅助功能技巧,拱趴游戏果然真的是有辅助技巧(有辅助挂方式)分享认知!拱趴游戏辅助功...
最新通报!至尊魔牌辅助器功能技... 最新通报!至尊魔牌辅助器功能技巧,至尊魔牌竟然存在有辅助器技巧(真实有辅助挂)1、最新通报!至尊魔牌...
玩家爆料!狮王娱乐辅助功能技巧... 玩家爆料!狮王娱乐辅助功能技巧,狮王娱乐竟然真的有辅助技巧(有辅助挂讲解)1、每一步都需要思考,不同...