大佬教程收集整理的这篇文章主要介绍了如果 HTTPClientTestingModule 没有发出真正的 API 请求或增加代码覆盖率,为什么我们要使用 HTTPClientTestingModule 测试 HTTP 请求?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Angular 文档中有一节解释了如何测试 http 请求;使用 httpClIEntTesTingModule
和 httpTesTingController
:https://angular.io/guide/http#tesTing-http-requests
在该部分,他们向您展示了如何编写一个测试,向此处的“模拟后端”发出 http 请求:https://angular.io/guide/http#expecTing-and-answering-requests
这是他们示例中使用的代码:
it('can test httpClIEnt.get',() => {
const testData: Data = {name: 'Test Data'};
// Make an http GET request
httpClIEnt.get<Data>(testurl)
.subscribe(data =>
// When observable resolves,result should match test data
expect(data).toEqual(testData)
);
// The following `expectOne()` will match the request's URl.
// If no requests or multiple requests matched that URL
// `expectOne()` would throw.
const req = httpTesTingController.expectOne('/data');
// Assert that the request is a GET.
expect(req.request.method).toEqual('GET');
// Respond with mock data,causing Observable to resolve.
// Subscribe callBACk asserts that correct data was returned.
req.flush(testData);
// Finally,assert that there are no outstanding requests.
httpTesTingController.verify();
});
所以我的问题是,这种测试的意义何在? AFAIK,它不会增加代码覆盖率,因为它不会针对服务运行,也不会调用真正的后端。
是的,他们的榜样希望一切顺利。
我们需要 httpClientTesTingModule
时需要:
第一点可以用一个假的 Subject
对象来完成,而第二点只能用 httpClientTesTingModule
来测试。
以上是大佬教程为你收集整理的如果 HTTPClientTestingModule 没有发出真正的 API 请求或增加代码覆盖率,为什么我们要使用 HTTPClientTestingModule 测试 HTTP 请求?全部内容,希望文章能够帮你解决如果 HTTPClientTestingModule 没有发出真正的 API 请求或增加代码覆盖率,为什么我们要使用 HTTPClientTestingModule 测试 HTTP 请求?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。