angularjs – Mocking $httpBackend – 如何处理“意外请求,没有
我有一个茉莉花测试,编码如下:
it ("should send correct message to server to get data,and correctly set up scope when receiving it",function(){ $httpBackend.when('GET','https://localhost:44300/api/projectconfiguration/12').respond(fakedDtoBase); $routeParams.projectId=fakeId; // user asks for editing project scope.$apply(function(){ var controller=controllerToTest(); // so controller gets data when it is created }); expect(scope.projectData).toEqual(fakedDtoBase); }); 它的工作,但我得到的错误: Error: Unexpected request: GET views/core/main/main.html No more request expected at $httpBackend (C:/SVN/src/ClientApp/client/bower_components/angular-mocks/angular-mocks.js:1207:9) at sendReq (C:/SVN/src/ClientApp/client/bower_components/angular/angular.js:7800:9) at $http.serverRequest (C:/SVN/src/ClientApp/client/bower_components/angular/angular.js:7534:16) (more stack trace).... 我意识到,我可以嘲笑每一个其他的电话。但让我们说,我不在乎我的测试想要加载什么,因为它可能调用少数其他的东西。
您的测试失败,因为您未指定请求。
尝试添加: $httpBackend.when('GET','views/core/main/main.html').respond(fakedMainResponse); 当然你也应该定义fakedMainResponse。 请查看documentation(请求期望vs后端定义)部分,其中说:
$ httpBackend.when的第二个参数实际上是一个RegExp。所以如果你提供一个RegExp将匹配所有其他请求它应该工作。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |