单元测试 – 试图在Angular中模拟$http
发布时间:2020-12-17 18:03:31 所属栏目:安全 来源:网络整理
导读:我正在尝试为我创建的服务创建一些基本的测试覆盖率.这是我的服务: App.factory('encounterService',function ($resource,$rootScope) { return { encounters: [],encountersTotalCount: 0,encountersIndex: 0,resource: $resource('/encounters/:encounter
我正在尝试为我创建的服务创建一些基本的测试覆盖率.这是我的服务:
App.factory('encounterService',function ($resource,$rootScope) { return { encounters: [],encountersTotalCount: 0,encountersIndex: 0,resource: $resource('/encounters/:encounterId',{encounterId:'@encounterId'},{ search: { method: 'GET',headers: { 'RemoteUser': 'jjjyyy','Content-Type': 'application/json' } } }),getMoreEncounters: function() { var that = this; that.resource.search({},function(data) { that.encountersTotalCount = data.metadata.totalCount; _.each(data.encounters,function(encounter) { that.encounters.push(encounter); }); that.busy = false; that.offset += 10; $rootScope.$broadcast('encountersFetched'); }); } }; }); 以下是我无法上班的测试: describe('encounterService',function() { var _encounterService,httpBackend; beforeEach(inject(function(encounterService,$httpBackend) { _encounterService = encounterService; httpBackend = $httpBackend; var url = '/encounters/'; httpBackend.when('GET',url).respond([{},{},{}]); })); afterEach(function() { httpBackend.verifyNoOutstandingExpectation(); httpBackend.verifyNoOutstandingRequest(); }); it('should return a list of encounters',function() { _encounterService.getMoreEncounters(); httpBackend.flush(); expect(_encounterService.encounters.size).toBe(3); }); }); 我得到的错误是 Chrome 31.0.1650 (Mac OS X 10.8.5) Clinical App services encounterService should return a list of encounters FAILED Error: Unexpected request: GET encounters No more request expected at $httpBackend (/Users/mhamm/Developer/clinical/app/bower_components/angular-mocks/angular-mocks.js:1179:9) at sendReq (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:7611:9) at $http.serverRequest (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:7345:16) at wrappedCallback (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:10549:81) at wrappedCallback (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:10549:81) at /Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:10635:26 at Scope.$eval (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:11528:28) at Scope.$digest (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:11373:31) at Function.$httpBackend.flush (/Users/mhamm/Developer/clinical/app/bower_components/angular-mocks/angular-mocks.js:1453:16) at null.<anonymous> (/Users/mhamm/Developer/clinical/test/spec/clinical.spec.js:78:21) Error: [$rootScope:inprog] $digest already in progress http://errors.angularjs.org/1.2.0/$rootScope/inprog?p0=%24digest at /Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:78:12 at beginPhase (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:11830:15) at Scope.$digest (/Users/mhamm/Developer/clinical/app/bower_components/angular/angular.js:11364:9) at Function.$httpBackend.verifyNoOutstandingExpectation (/Users/mhamm/Developer/clinical/app/bower_components/angular-mocks/angular-mocks.js:1486:16) at null.<anonymous> (/Users/mhamm/Developer/clinical/test/spec/clinical.spec.js:68:21) 我不完全理解嘲笑,所以我确信我做的事情基本不正确.请告诉我我做错了什么. 解决方法
$resource会自动从网址中删除尾部斜杠.
从版本1.3.0开始,有一个fourth argument允许您设置stripTrailingSlashes:false来保留它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |