我目前正在运行angularjs 1.2.10并使用带有angular-mocks-1.2.10的karma / jasmine进行单元测试,并在$ httpBackend的单元测试用例中停留。
在其中阻止
describe('sumCtrl'...)
...
beforeEach(angular.mock.inject(function($rootScope,$controller,$httpBackend){
scope = $rootScope.$new();
httpBackend = $httpBackend;
$controller('sumCtrl',{$scope:scope});
}));
it("should call these http services",function(){
httpBackend.expectGET('/api/something1/').respond({success:true});
httpBackend.expectPOST('/api/something2/').respond({success:true});
httpBackend.flush();
});
上面的代码完美无缺,但是当我再添加一个httpBackend调用
时 it("should call these http services",function(){
httpBackend.expectGET('/api/something1/').respond({success:true});
httpBackend.expectPOST('/api/something2/').respond({success:true});
httpBackend.expectPOST('/api/something3/').respond({success:true});
httpBackend.flush();
});
这会在第4行出错。不满意的请求:POST'/ api / something3'....使用$ httpBackend ....
不知道在使用$ httpBackend时使用$ httpBackend进行请求的数量是否有限制,或者在使用$ httpBackend时需要记住的其他内容。
答案 0 :(得分:3)
我做了一个小提琴,你应该有超过2:http://fiddle.jshell.net/gZS5M/
$http.get('/api/something1');
$http.post('/api/something2');
$http.post('/api/something3');
$http.post('/api/something4');
工作正常。我猜你的网址上只有拼写错误。
如果这没有用,请随时向我反击