我正在尝试模拟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();
});
}
}
但是intelisense
的{{1}}在方法vs code
上给了我以下错误:
类型'MockAppHttpClientService'的属性'get'不能分配给基本类型'Http'的相同属性。
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
您不必编写自己的模拟程序,因为这不是一项琐碎的任务。 Angluar已经提供了实用程序来模拟http客户端以进行单元测试。官方文档
中有足够详细的描述https://angular.io/guide/testing#testing-http-services
简而言之,请使用HttpClientTestingModule