首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 4:可以用HttpClient做隔离单元测试吗?

Angular 4:可以用HttpClient做隔离单元测试吗?
EN

Stack Overflow用户
提问于 2018-02-06 06:11:16
回答 1查看 518关注 0票数 1

我想我应该遵循Angular guide for testing services,但这是一个没有测试的新项目,我们刚刚切换到使用更新的HttpClient,我看到的每个例子都使用了所有的TestBed样板,我认为这给我的测试运行带来了问题。

有没有办法编写使用HttpClient的服务的隔离单元测试?

我想知道的第二部分是最佳实践。对于单元/集成测试,我还是个新手,在我见过的HttpClient示例中,它们都使用HttpTestingController返回模拟结果。对于我的应用程序来说,API返回应用程序所需的内容很重要,所以我是否应该针对真正的服务进行测试,而不是假装它会像预期的那样返回?如果不是,那么为服务编写测试的价值是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-02-06 08:08:30

在不使用TestBed或其他角度注入器的隔离测试中使用真正的HttpClient是不可能的(或者至少是不切实际的)。

在隔离测试中,应该模拟HttpClient以复制真实类,例如:

代码语言:javascript
复制
const httpClientMock = jasmine.createSpyObj('', ['get']);
httpClientMock.get.and.returnValue(Observable.of(['foo']);

const foo = new Foo(httpClientMock);
foo.makeRequest();
expect(httpClientMock.get).toHaveBeenCalledWith('/foo');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48632335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档