$ httpBackend不会模拟$ .ajax(...)调用

时间:2015-03-05 16:59:49

标签: jquery angularjs httpbackend angular-mock ngmock

尝试使用$ httpBackend为$ .ajax调用创建模拟。

以下模拟代码段在$http.get('/phones')

工作正常时效果很好
$httpBackend.whenGET('/phones')

但是当试图使用相同的

$.ajax({
       url: '/phones',
       type: 'GET'
})

这为'/ phones'ajax电话提出了404错误。

Jsfiddler链接here

1 个答案:

答案 0 :(得分:4)

作为$httpBackend documentation州的第一行,$httpBackend

  

虚假HTTP后端实现,适用于使用$http服务的单元测试应用程序。

如果您不使用$http服务,则$httpBackend将无法了解该请求,因此无法拦截该请求或模拟回复。

您应始终使用$http - 没有理由在角度应用中使用$.ajax