测试ajax请求是否尚未以角度发出
Testing that an ajax request hasn't been made in angular
我怎样才能测试在使用角度$httpBackend
时没有发出ajax请求。我尝试使用verifyNoOutstandingRequest()
但是(至少在v1.1.5中)它似乎从未导致测试失败。
方案的更多详细信息
我的数据库模块使用 ngResource 连接到我的服务器端数据库。我已经设置了它,以便 GET all 是缓存的客户端,因此只有对我的 getTable('tableName')
方法的第一次调用才能触发 ajax 请求。因此,有问题的测试需要验证第一个调用是否发出 ajax 请求,但第二个调用没有
如果您希望测试在发出不应失败的请求时失败,只需确保不要为其定义expect
方法即可。如果 Angular 收到意外的请求,它将抛出错误。
您必须为每个请求编写一个excpect
方法,因此对于第一次调用应该实际发出请求的getTable
,您将有一个expect
,然后如果由于某种原因,之后尝试请求,Angular 将抛出错误,您的测试将失败。
因此,测试的主体将如下所示:
$httpBackend.expectGET("request_url");
getTable("tableName");
$httpBackend.flush();
//no error because it was expecting a request
getTable("tableName"); //will throw an error if it actually tries to make a request
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成