我正在尝试模拟 Http
类,这样我就可以将它注入(inject)到我想测试的服务中。
通常,我会创建一个模拟类来扩展将被覆盖的类。对于这种情况,我做了这样的事情:
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 code
的 intelisense
在方法 get
上给我以下错误:
Property 'get' in type 'MockAppHttpClientService' is not assignable to the same property in base type 'Http'.
有人知道怎么解决吗?
最佳答案
您不必编写自己的模拟,因为这不是一项微不足道的任务。 Angluar 已经提供实用程序来模拟 http 客户端以进行单元测试。官方文档中有足够详细的描述
https://angular.io/guide/testing#testing-http-services
简而言之,使用HttpClientTestingModule
关于Angular - 覆盖/模拟方法从 HTTP 获取、发布、放置、删除以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365671/