【问题标题】:Angular - Override/Mock methods get, post, put, delete from HTTP for testingAngular - 覆盖/模拟方法从 HTTP 获取、发布、放置、删除以进行测试
【发布时间】:2019-02-21 06:08:50
【问题描述】:

我正在尝试模拟 Http 类,以便可以将其注入到我想要测试的服务中。

通常,我创建一个模拟类来扩展将被覆盖的类。对于这种情况,我做了这样的事情:

export class MockHttp extends Http {
    constructor(){super(undefined, undefined);}
    get(url: string, options?: RequestOptionsArgs): Observable<Response> {
        return new Observable((observer) => {
            observer.next(undefined);
            observer.complete();
        });
    }
}

但是vs codeintelisense 在方法get 上给我以下错误:

“MockAppHttpClientService”类型中的属性“get”不能分配给基类型“Http”中的相同属性。

有人知道怎么解决吗?

【问题讨论】:

    标签: angular typescript jasmine


    【解决方案1】:

    您不必编写自己的模拟,因为这不是一项简单的任务。 Angluar 已经提供了模拟 http 客户端以进行单元测试的实用程序。官方文档中有足够详细的描述

    https://angular.io/guide/testing#testing-http-services

    简而言之,使用HttpClientTestingModule

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多