Javascript 在QUnit测试中获得$httpBackend

Javascript 在QUnit测试中获得$httpBackend,javascript,unit-testing,angularjs,qunit,Javascript,Unit Testing,Angularjs,Qunit,我正在为角度控制器编写QUnit测试。在模块的setup函数中,我编写了以下语句来获取$httpBackend的对象: var injector = angular.injector(['ng']); var httpBackend = injector.get('$httpBackend'); 在测试中,GET的模拟响应配置如下: httpBackend.expectGET(url).respond([]); 测试规范在此语句中失败,错误为:对象不支持属性或方法expectGET 我能

我正在为角度控制器编写QUnit测试。在模块的setup函数中,我编写了以下语句来获取$httpBackend的对象:

 var injector = angular.injector(['ng']);
 var httpBackend = injector.get('$httpBackend');
在测试中,GET的模拟响应配置如下:

httpBackend.expectGET(url).respond([]);
测试规范在此语句中失败,错误为:对象不支持属性或方法
expectGET

我能够使用相同的注入器引用来获得其他对象,如控制器、示波器


我在这里遗漏了什么吗?

您必须设置angular才能从中使用$httpBackend 它包含
expectGET
方法

但根据《茉莉花》的规定,“只提供给茉莉花。

我问了这个问题,他回答我一个问题,解决了这个问题。他说,当我们在QUnit测试中使用$httpBackend或angular-mocks.js中定义的任何其他模拟时,以下装饰器是必不可少的:

$provide.decorator('$httpBackend', angular.mock.e2e.$httpBackendDecorator);
我在一个示例应用程序中使用了这种方法,并将我的学习记录在博客上: