我目前正在运行 angularjs 1.2.10 并使用 karma/jasmine 和 angular-mocks-1.2.10 进行单元测试,并陷入 $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 时需要记住的其他内容。