首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用XMLHttpRequests的$httpBackend测试普通的$httpBackend吗?

我能用XMLHttpRequests的$httpBackend测试普通的$httpBackend吗?
EN

Stack Overflow用户
提问于 2014-01-12 21:15:40
回答 1查看 490关注 0票数 0

我有一个AngularJS应用程序,它需要文件上传,而且由于$http不支持XMLHttpRequest.upload的特殊特性,所以我必须使用XMLHttpRequest来执行文件上传。

我的问题是:我能否使用$httpBackend对通过new XMLHttpRequest()提出的请求进行单元测试?

我已经做了一些测试,但目前$httpBackend正在抛出错误。在没有调用$httpBackend.flush()的情况下,它抱怨请求不满意,但是添加flush只会导致“没有挂起请求”错误。

搜索引擎的广泛使用并没有给我一个答案,所以你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 22:45:58

我怀疑不会,但是如果稍微重构代码,您仍然可以对代码进行单元测试:

  • 创建一个返回new $window.XMLHttpRequest()的小工厂。
  • 然后,在服务/控制器中,而不是直接调用new XMLHttpRequest(),在需要调用upload()时注入这个工厂
  • 您可以通过模拟工厂并在测试之前注入服务/控制器来对服务/控制器进行单元测试。
  • 您甚至可以通过使用一个$window构造函数模拟XMLHttpRequest并在测试之前注入该构造函数来对小型工厂进行单元测试。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21080376

复制
相关文章

相似问题

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